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

p1.count = p1.count + 1 为什么不能修改类属性的值

class Person(object):

    count = 0

    def __init__(self):

        Person.count = Person.count + 1


p1 = Person()

p1.count = p1.count + 1

print p1.count

p2 = Person()

print Person.count

p3 = Person()

print Person.count

执行的结果是 

2

2

3

p1.count = p1.count + 1 为啥这个表达式不能在其他的实例创建的时候产生作用,Person.count =Person.count + 1  如果换成这个就可以


正在回答

2 回答

不能通过实例属性去修改类属性的值,只能通过类属性来修改

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

count是类属性,要改变类属性得用“Person.count”,“p1.count”改变的只是实例p1的属性,而是实例属性的优先级比类属性高,我是这么理解的。

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

人间世支离疏

就是这么一回事
2019-11-28 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

p1.count = p1.count + 1 为什么不能修改类属性的值

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

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

帮助反馈 APP下载

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

公众号

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