class A():
count = 0
def __init__(self):
A.count += 1
def exclaim(self):
print("I'm an A!")
@classmethod
def kids(cls):
print("A has", cls.count, "little objects.")
easy_a = A()
breezy_a = A()
wheezy_a = A()
A.kids()
print(easy_a.count)
Output :
A has 3 little objects.
3
Class properties count Record the class A How many times has it been instantiated , amount to A This “ abstract class ” Properties of , And every instance will get this count, therefore easy_a.count The value of is also 3.
If you put count Change to only modify the instance during initialization count value , that A Of count Always be 0, And for each instance count yes 1.
class A():
count = 0
def __init__(self):
self.count += 1
def exclaim(self):
print("I'm an A!")
@classmethod
def kids(cls):
print("A has", cls.count, "little objects.")
easy_a = A()
breezy_a = A()
wheezy_a = A()
A.kids()
print(easy_a.count)
Output :
A has 0 little objects.
1
Reference material :《Python Language and its application 》【 beautiful 】 Lubanovic Writing