Python—子类构造函数调用super().__init__() 迈不过友情╰ 2021-07-26 14:08 348阅读 0赞 ### 【super作用】 ### 1. 如果子类(Puple)继承父类(Person)不做初始化,那么会自动继承父类(Person)属性name。 2. 如果子类(Puple\_Init)继承父类(Person)做了初始化,且不调用super初始化父类构造函数,那么子类(Puple\_Init)不会自动继承父类的属性(name)。 3. 如果子类(Puple\_super)继承父类(Person)做了初始化,且调用了super初始化了父类的构造函数,那么子类(Puple\_Super)也会继承父类的(name)属性。 ![在这里插入图片描述][70] ### 【继承中super的调用顺序】 ### > 继承中super的调用顺序是与MRO-C3的类方法查找顺序一样的 class A: def __init__(self): print('A') class B(A): def __init__(self): print('B') super().__init__() class C(A): def __init__(self): print('C') super().__init__() class D(A): def __init__(self): print('D') super().__init__() class E(B, C): def __init__(self): print('E') super().__init__() class F(C, D): def __init__(self): print('F') super().__init__() class G(E, F): def __init__(self): print('G') super().__init__() ![在这里插入图片描述][70 1] </div> [70]: /images/20210726/4cd8367432294d97ba0a2374e8bbdc5f.png [70 1]: /images/20210726/db6337d8a9dd456e85d803b608b9f0db.png
还没有评论,来说两句吧...