最开始学习python,认为定义类时__init__方法的作用等同于C中的构造函数,但是使用之后发现也有区别
例如:
执行时的步骤可以理解为;
b = object.__new__(a)
a.__init__(a,"wang")
即__init__的作用是初始化实例后的对象b
在子类不重写__init__方法时,子类会默认调用父类中的__init__方法
子类也可以重写__init__方法,来给子类定义专属属性
当然,上面写的是比较官方的解释
用简单的话来讲,可以理解为,类的属性如果直接写在类里面一般是要有值的
例如: class fun()
a = 3
这样的情况下,类中的属性无法变成变量,当将类的属性以self.a的方式定义到初始化方法中,那属性也可以当成变量
例如:class fun()
def __init__(self,a)
self.a = a
f = fun(3)
print(f.a)
在这种情况下,类中的属性,变成了变量,并且需要在创建对象时传值