为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

德玛西亚99 2022-06-22 17:16:23
这是垃圾邮件.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


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号