Python中類的靜態函式 靜態變數的實現

2021-06-21 21:11:57 字數 1175 閱讀 5611

# encoding:utf-8

__author__ = 'mr******'

# 含有類的靜態方法、靜態變數, 普通類成員函式, 成員變數

class people:

count = 0

sum = 0

def __init__(self, name, age, gend):

self.name = name

self.age = age

self.gender = gend

people.peoplecount() # 人數計數

people.agesum(age) # 歲數計數

def tostring(self):

print "name : %s, age : %d, gender : %s." % (self.name,self.age, self.gender)

# 靜態函式

@staticmethod

def sayhi(fname):

print "hi," + fname

# 間接實現靜態成員變數

@classmethod

def peoplecount(cls):

cls.count += 1

return cls.count

# 間接實現靜態成員變數, 有引數

@classmethod

def agesum(cls, age):

cls.sum += age

return cls.sum

ple = people("mr.******", 22, "male")

ple.tostring()

people.sayhi("frank")

print ple.name

print people.peoplecount()

print people.agesum(10)

使用@staticmethod標籤來表明函式為類的靜態函式,且sayhi的引數中沒有self。而類的靜態變數借助@classmethod來實現,其中peoplecount中為無參靜態函式,而agesum中有乙個age引數。 如圖

時間類 靜態函式

corpyright c 2013,煙台大學計算機學院 all right reseved.完成日期 2014年4月1日 版本號 v1.0 輸入描述 問題描述 時間類!程式輸出 問題分析 演算法設計 include using namespace std class time void show t...

C 類中的靜態成員與靜態函式

c 類中的靜態成員有乙個非常好的功能,那就是無論類定義了多少個物件,這些物件始終都共同使用這乙個靜態成員 例如 class a int a num 0 就會有如下效果 a a,b,c,d cout 可以看出,在每個物件中的num成員都只有乙個副本。在記憶體中也是如此,初始化abcd時並沒有分配新的記...

C 類中的靜態成員與靜態函式

c 類中的靜態成員有乙個非常好的功能,那就是無論類定義了多少個物件,這些物件始終都共同使用這乙個靜態成員 例如 class a int a num 0 就會有如下效果 a a,b,c,d cout 可以看出,在每個物件中的num成員都只有乙個副本。在記憶體中也是如此,初始化abcd時並沒有分配新的記...