super用法之一隅
在没有直接父类的类中使用super
1 class A: 2 def func(self): 3 print("A") 4 super().func() 5 6 7 class B: 8 def func(self): 9 print("B") 10 11 12 class C(A, B): 13 ... 14 15 16 c = C() 17 print(c.func())
output:
A
B
类A中使用的super()方式实则调用了类B的func方法,而B和A是完全不相关的,这完全可以用C的MRO(方法解析顺序)列表来解释
1 print(C.mro())
[<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>]