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

修改类属性一定要加类名吗?

以下代码中,为什么 用 count = count + 1 不能实现预期的结果,而,Person.count = Person.count + 1 可以呢?:

class Person(object):    count = 0    def __init__(self, name):        count = count + 1        self.name = name p1 = Person('Bob') print Person.count

正在回答

2 回答

init函数是实例的初始函数,其中的self指的是要创建的对象。在init函数中只写count,程序无法判断这个属性是对象的还是类的,就像对name属性赋值时要写明self。name一样

1 回复 有任何疑惑可以回复我~
class Person(object):
    count = 0#类属性,不属于对象
    def __init__(self, name):
        Person.count = Person.count + 1#类属性通过类名访问
        self.name = name

p1 = Person('Bob')
print Person.count

重点是区分类和对象不是一个概念,对象是类一个实例而已,count 是类属性所以通过类名.类属性访问

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

举报

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

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

进入课程

修改类属性一定要加类名吗?

我要回答 关注问题
微信客服

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

帮助反馈 APP下载

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

公众号

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