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

关于cls

    @classmethod
    def how_many():
        return Person.__count

不用cls,直接调用Person.__count为什么会报错?


正在回答

4 回答

@classmethod

    def how_many(Person):

        return Person.__count

这样就可以了,Person作为类方法的传递参数

0 回复 有任何疑惑可以回复我~

这个函数的对象 绑定的是一个类!!

默认写cls表示类 就像self通常用来表示实例一样      当然你也可以用其他变量来代替 只要你看的懂

但是这个参数 在函数中一定要写

0 回复 有任何疑惑可以回复我~

刚刚测试了一下你的代码

Traceback (most recent call last):
  File "index.py", line 17, in 
    print Person.how_many()
TypeError: how_many() takes no arguments (1 given)

报错是因为how_many没有获取到参数,

类方法的第一个参数将传入类本身(引用), 所以必须要有一个参数作为类, 并不是Person.__count报错

2 回复 有任何疑惑可以回复我~

count前有__,说明是私有属性,只能在class内部使用self.__count调用

1 回复 有任何疑惑可以回复我~
#1

游离丸子

然而这就是class的内部
2018-07-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程
微信客服

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

帮助反馈 APP下载

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

公众号

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