最开始学习python,认为定义类时__init__方法的作用等同于C中的构造函数,但是使用之后发现也有区别。
# coding:utf-8
class a():
def __init__(self,name):
self.name = name
def get_name(self):
return self.name
b = a("wang")
print(b.get_name())
Output:
-----
wang
-----
例如:
执行时的步骤可以理解为;
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)
Output:
--
3
--