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

关于在类内部为属性赋初始值的问题

在对count赋值的时候我是放在了类定义的外面,怎么感觉在类内为count赋初值有点不妥呢?莫非每次创建一个实例,都是从init函数开始?

count=0这个语句是在类创建时执行,在实例创建时不会执行吗?

正在回答

2 回答

你把__init__理解成是一个构造函数,,构造函数外围的count=0理解成是一个默认参数,而在实例化对象的实现最先调用的是构造函数,然后在第一次调用构造函数里面的count因为没有值就是使用默认参数,因此第一次调用的count是0的默认值,然后第二次调用的时候是有参调用以此用的是有参的count,以此类推。

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

count相当于全局静态变量,从题的问法推测,你应该接触过其他语言.可以类比一下,既然是全局变量,那么每次实例化对象都会使用count,也就是说count存在于每个对象中,每次对象中的count都会随着改变而改.  count=0,是对最初的第一次赋值,只作用一次,往后每个对象都会使用改变后的count,而不是使用最初在__init__里面定义的初始值0.

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

奔跑的鳄鱼 提问者

我的意思是 , 之后创建新的对象时,都不会再执行count=0这条语句了吧
2017-06-25 回复 有任何疑惑可以回复我~
#2

这个名字不好 回复 奔跑的鳄鱼 提问者

是的,不会再执行了。
2017-08-10 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

关于在类内部为属性赋初始值的问题

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

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

帮助反馈 APP下载

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

公众号

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