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'>]

posted on 2022-10-04 22:04  默玖  阅读(29)  评论(0编辑  收藏  举报

导航