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

类属性疑问

我用的self.count = self.count +1 为什么打出三个0?   用Person.count 和self.count区别在哪里?

正在回答

2 回答

类属性调用:Person.count

实例属性调用:self.count

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

在Python,有两种属性,类属性和实例属性,类属性相当于类的静态方法(类比于Java),实例属性是每个实例单独的属性,楼主所说的用Person.count,这里调用的就是类属性,self.count调用的是实例属性,当在_init_中调用的是self时,然后打印的时候调用的是Person.count,那么count肯定是它的初始值0了,因为它没有改变,用self.count,改变的只是实例的属性,并没有改变类属性,所以打印出三个0了,如果楼主把print那个部分的Person换成p1,p2,p3的时候,打印的就是三个1了,因为他们的实例属性在初始化的时候被+1了,而需要改变类属性的话,楼主就需要把self.count = self.count +1 改成Person.count=Person.count+1了

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

再见你

这个写的好,解答了我疑问~
2016-04-22 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

类属性疑问

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