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

为什么class Student里面不需要__init__()

class Students(object):
    def read(self):


正在回答

2 回答

解释器又不是用__init__()来构建实例的,仅在创建时调用改函数设置初识属性。所以,在定义class的时候,__init__()本来就不是必须的。需要根据需求来决定是否添加。

这段代码里面,json.load() 拟定传入的是一个有read()方法的object。并不需要这个object拥有某种属性,也不在通过创建实例时候在动态添加什么。所以可以省略def  __init__()这一步。

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

冬青ilex

row1.初始属性
2016-05-14 回复 有任何疑惑可以回复我~
#2

昵称2_18位中英文 提问者

非常感谢!
2016-05-14 回复 有任何疑惑可以回复我~
#3

昵称2_18位中英文 提问者 回复 冬青ilex

所以__init__()只是用来添加属性?也就是说__init__()只是一种类里面的方法,这个类方法的作用是提供类的属性?谢谢!
2016-05-14 回复 有任何疑惑可以回复我~
#4

冬青ilex 回复 昵称2_18位中英文 提问者

是在创建实例时被解释器自动调用,对类的实例进行一系列属性添加,修改这这样。不设置这个方法就是跳过这个步骤。 不仅仅可以添加属性,方法,或者直接传入某个对象也可以,python在这方面很灵活。总之功能是用来添加某些东西到实例里面。只是一种类里面的方法,约定俗成承担了特定的作用,这个类方法的作用是添加类的实例的初始属性。 大概可以这样理解。
2016-05-14 回复 有任何疑惑可以回复我~
查看1条回复

其实可以理解为class就是一个包装壳,并没有实例化的需求,所以不用初始化__init__

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

举报

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

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

进入课程

为什么class Student里面不需要__init__()

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