標(biāo)記類方法@classmethod def get_count(cls):如何實現(xiàn)兩次計算
class animal(object):
? ? __count=0
? ? def __init__(self,name,age):
? ? ? ? self.name=name
? ? ? ? self.age=age
? ? ? ? animal.__count+=1
? ? @classmethod
? ? def get_count(cls):
? ? ? ? return cls.__count
dog=animal('wangcai',2)
cat=animal('tom',3)
count=animal.get_count()
print(count)
#結(jié)果為2
2022-04-24
實例的屬性定義函數(shù)中也不能直接調(diào)用私有的類屬性,需要加一個類方法,在實例的屬性定義中:
class Animal(object):
? ? __count=0
? ? def __init__(self,name,age):
? ? ? ? self.name=name
? ? ? ? self.age=age
? ? ? ? Animal.set_count()
? ? @classmethod
? ? def set_count(cls):
? ? ? ? cls.__count+=1
? ? @classmethod
? ? def get_count(cls):
? ? ? ? return cls.__count
dog=Animal('Wangwang',15)
cat=Animal('set',16)
print(Animal.get_count())
#答案為2