课程
/后端开发
/Python
/python进阶
在对count赋值的时候我是放在了类定义的外面,怎么感觉在类内为count赋初值有点不妥呢?莫非每次创建一个实例,都是从init函数开始?
count=0这个语句是在类创建时执行,在实例创建时不会执行吗?
2017-06-24
源自:python进阶 4-6
正在回答
你把__init__理解成是一个构造函数,,构造函数外围的count=0理解成是一个默认参数,而在实例化对象的实现最先调用的是构造函数,然后在第一次调用构造函数里面的count因为没有值就是使用默认参数,因此第一次调用的count是0的默认值,然后第二次调用的时候是有参调用以此用的是有参的count,以此类推。
count相当于全局静态变量,从题的问法推测,你应该接触过其他语言.可以类比一下,既然是全局变量,那么每次实例化对象都会使用count,也就是说count存在于每个对象中,每次对象中的count都会随着改变而改. count=0,是对最初的第一次赋值,只作用一次,往后每个对象都会使用改变后的count,而不是使用最初在__init__里面定义的初始值0.
奔跑的鳄鱼 提问者
这个名字不好 回复 奔跑的鳄鱼 提问者
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号