python之理解super及MRO列表 ( 示例版 )
例子 1:
class A0: def pri(self): super().pri() print("A0") class A1(A0): def pri(self): super().pri() print("A1") class B0: def pri(self): print("B0") class B1(B0): def pri(self): super().pri() print("B1") class X(A1, B1): def pri(self): super().pri() print("X") x=X() x.pri()
print(x.__class__.mro())
输出:
例子 2:
class A0: def pri(self): #super().pri() print("A0") class A1(A0): def pri(self): super().pri() print("A1") class B0: def pri(self): print("B0") class B1(B0): def pri(self): super().pri() print("B1") class X(A1, B1): def pri(self): super().pri() print("X") x=X() x.pri() print(x.__class__.mro())
输出:
例子 3:
class A0: def pri(self): #super().pri() print("A0") class B0: def pri(self): super().pri() print("B0") class B1(B0): def pri(self): super().pri() print("B1") class X(B1, A0): def pri(self): super().pri() print("X") x=X() x.pri() print(x.__class__.mro())
输出:
例子 4:
class A0: def pri(self): #super().pri() print("A0") class B0: def pri(self): #super().pri() print("B0") class B1(B0): def pri(self): super().pri() print("B1") class X(B1, A0): def pri(self): super().pri() print("X") x=X() x.pri() print(x.__class__.mro())
输出:
例子 5:
class A0: def pri(self): super().pri() print("A0") class B0: def pri(self): super().pri() print("B0") class B1(B0): def pri(self): super().pri() print("B1") class X(B1, A0): def pri(self): super().pri() print("X") x=X() print(x.__class__.mro()) x.pri()
(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2020-07-07 13:31 Angry_Panda 阅读(241) 评论(0) 编辑 收藏 举报