为什么它打印“创建的实例数:0”而不是“创建的实例数:3”?

这是垃圾邮件.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 Spam

a = Spam()

b = Spam()

c = Spam()


Spam.printNumInstances()


a.printNumInstances()

为什么它打印“创建的实例数:0”而不是“创建的实例数:3”?


德玛西亚99
浏览 114回答 1
1回答

慕哥9229398

你有一些错别字,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: 3Number of instances created: 3
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python