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

count = 0 在每次新建实例时不执行吗?

每次实例化一个类的时候,只执行类下面的__init__方法吗?我总感觉会按照顺序执行,所以应该每次实例化的时候count都要重置为1……,请问有没有相关文档?

正在回答

5 回答

不执行,每次实例化只是从init执行,准确来说是从__new__执行.count只是实利外层作用域的一个变量

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

个人认为,一个类实例化对象时,会自动调用__init__()方法(也就是java中说的构造方法),自然就不会不会执行多次count赋值0的操作。count是类的属性,因此只会在加载这个类时赋一次值。

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

经过测试,def __init__(self, name):前的语句只在类定义的时候执行,之后无论多少次实例化都不会再执行,实例化的时候只从def __init__(self, name):开始往后执行,所以count才不会每次实例化的时候都清零。

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

count=0是这个类中count这个属性的初始值,每有一个实例被创建就会执行一次__init__这个函数,而在__init__里有一个操作是Person.count+=1,这步的操作是在改变count类属性的值,每创建一个实例这个count属性就会加1,所以就相当于一个计时器,而类属性是所有实例共有的属性,所以在最后print的时候所有的实例都可以通过person.conut去调用count当前的值。

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

雨过云舒

那为什么实例被创建的时候不会执行count=0这句话呢?
2019-04-08 回复 有任何疑惑可以回复我~

对啊  我也想问这个问题 __init__()方法每次都要执行  但是count  看来是不执行

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

举报

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

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

进入课程

count = 0 在每次新建实例时不执行吗?

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