上面:
Puple 继承所有
Puple_Init 继承,但覆盖了init方法
Puple_Super 继承,但覆盖了init方法,并在init里面添加了super().init()
运行结果:
三种构造函数的区别:
当子类不做初始化的时候,会自动继承父类的属性;
当子类做初始化(子类中包含新的属性)的时候,子类不会自动继承父类的属性;
当子类做初始化(子类中包含新的属性)的时候,如果子类调用super初始化了父类的构造函数,那么子类会继承父类的属性。
在python中创建类后,通常会创建一个 __ init__ ()方法,这个方法会在创建类的实例的时候自动执行。
class Person():
def __init__(self,name):
print("是一个人")
self.name=name
def eat(self):
print("%s要吃饭" %self.name)
Bob=Person('Bob')
Bob.eat()
super(Net, self).init()
python中的super(Net, self).init()是指首先找到Net的父类(比如是类NNet),然后把类Net的对象self转换为类NNet的对象,然后“被转换”的类NNet对象调用自己的init函数,其实简单理解就是子类把父类的__init__()放到自己的__init__()当中,这样子类就有了父类的__init__()的那些东西
引用父类方法都可用super()实现