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

cls为什么相当于Person

通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count

这句话我想较真,怎么理解这个相当于呢

正在回答

5 回答

用了@classmethod后,how__many()变为类方法,传入的是类本身,所以cls相当于Person,cls.count相当于Person.count

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

qq_财神_4 提问者

虽然说的不是很清楚但对我的理解有所帮助
2018-06-02 回复 有任何疑惑可以回复我~

看下源码

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

外面转了一圈 学java的过程懂得了什么叫“构造函数”。这个问题的关键在于理解“@classmethod方法起绑定作用”

class Person(object):

   __count = 0

@classmethod

    def how_many(cls):

        return cls.__count;

定义的how_many方法直接绑成了Person类的“构造方法(默认方法)”,所以cls对__count的使用直接等价于Person对__count的使用


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

猜测应该是 @classmethod 在作用. 有这条语句,参数命名叫什么无所谓

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

参数名命名什么不重要,无论传什么参数名,都代表实例本身

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

举报

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

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

进入课程

cls为什么相当于Person

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信