Python 为什么它会打印;创建的实例数:0“;而不是",;创建的实例数:3;?
这是spam.py:Python 为什么它会打印;创建的实例数:0“;而不是",;创建的实例数:3;?,python,Python,这是spam.py: class Spam: numInstances = 0 def __init__(self): Spam.numIntances = Spam.numInstances + 1 def printNumInstances(): print("Number of instances created: %s" % Spam.numInstances) 这是另一个file.py
class Spam:
numInstances = 0
def __init__(self):
Spam.numIntances = Spam.numInstances + 1
def printNumInstances():
print("Number of instances created: %s" % Spam.numInstances)
这是另一个file.py文件:
from spam import Spam
a = Spam()
b = Spam()
c = Spam()
Spam.printNumInstances()
a.printNumInstances()
为什么它打印“创建的实例数:0”而不是“创建的实例数:3”您有一些打字错误,
printNumInstances
应该是一个classmethod
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
可能的重复