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

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进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

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

进入课程

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

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