首页 新闻 会员 周边 捐助

python中的__init__()只是在类中做初始化吗!

0
[已解决问题] 解决于 2017-10-11 16:46

  今天在学习python的时候,教程中的class中都用了__init__(),我知道__xxx__这样的都有特殊的用途,如果__init__()只有初始化的作用的话,我感觉这个就没有什么必要性了吧!我可以把这个名称随意换成其他的,在我的测试过程中,我改为其他名称也不会影响程序的执行,还是说这就是一个编码习惯。

  我不知道我理解的对不对,初学python,请大神们多多指点!感激不尽

insistYuan的主页 insistYuan | 初学一级 | 园豆:186
提问于:2017-10-11 16:02
< >
分享
最佳答案
0

不对,__init__()主要是为了在创建新对象时就将相关属性封装进该对象并进行一些必要操作,因为它是创建新对象时都会执行的,所以可以保证你的封装,你更改成其他的名字,那么要封装的话就必须执行你写的方法,否则没封装的话你的代码就不面向对象。你定义了自己方法执行了__init__()原本的任务,那么当其他地方其他人要使用你的类时,就必须要先执行一次你定义的方法,这样很不不合理

奖励园豆:5
北方姆Q | 小虾三级 |园豆:1120 | 2017-10-11 16:09

我可以理解成使用__init__()是把一些不需要改变的属性封装进对象中吗?

insistYuan | 园豆:186 (初学一级) | 2017-10-11 16:21

@insistYuan: 不需要改变的使用静态字段来定义,封装是封该对象的相关属性,与它是否会变化无关

北方姆Q | 园豆:1120 (小虾三级) | 2017-10-11 16:23

@北方姆Q: 我明白了,它是把对象的属性封装进去了,而不是把对象的属性写死了!

insistYuan | 园豆:186 (初学一级) | 2017-10-11 16:34

@insistYuan: .....别思考这些了,以后慢慢就理解了,初学就先按规范来吧

北方姆Q | 园豆:1120 (小虾三级) | 2017-10-11 16:38

不对,是把对象的属性名称封装进去了,属性值需要调用者传入!这样理解对吧!

insistYuan | 园豆:186 (初学一级) | 2017-10-11 16:38

@北方姆Q: 好的!谢谢指点

insistYuan | 园豆:186 (初学一级) | 2017-10-11 16:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册