课程
/后端开发
/Python
/python进阶
@classmethod def how_many(): return Person.__count
不用cls,直接调用Person.__count为什么会报错?
2018-06-11
源自:python进阶 4-10
正在回答
@classmethod
def how_many(Person):
return Person.__count
这样就可以了,Person作为类方法的传递参数
这个函数的对象 绑定的是一个类!!
默认写cls表示类 就像self通常用来表示实例一样 当然你也可以用其他变量来代替 只要你看的懂
但是这个参数 在函数中一定要写
刚刚测试了一下你的代码
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报错
count前有__,说明是私有属性,只能在class内部使用self.__count调用
游离丸子
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号