这是垃圾邮件.py: class Spam: numInstances = 0 def __init__(self): Spam.numIntances = Spam.numInstances + 1 def printNumInstances(): print("Number of instances created: %s" % Spam.numInstances)这是另一个文件.py:from spam import Spama = Spam()b = Spam()c = Spam()Spam.printNumInstances()a.printNumInstances()为什么它打印“创建的实例数:0”而不是“创建的实例数:3”?
1 回答

慕哥9229398
TA贡献1877条经验 获得超6个赞
你有一些错别字,printNumInstances应该是一个类方法。
class Spam:
numInstances = 0
def __init__(self):
Spam.numInstances = Spam.numInstances + 1
@classmethod
def printNumInstances(cls):
print("Number of instances created: %s" % cls.numInstances)
a = Spam()
b = Spam()
c = Spam()
Spam.printNumInstances()
a.printNumInstances()
输出:
Number of instances created: 3
Number of instances created: 3
添加回答
举报
0/150
提交
取消