class A():
def __init__(self):
print('A开始')
super().__init__()
print('A结束')
class B(A):
def __init__(self):
print('B开始')
super().__init__()#不一定是父类,是mro表
print('B结束')
class C(A):
def __init__(self):
print('C开始')
super().__init__()
print('C结束')
class D(B,C):
def __init__(self):
print('D开始')
super().__init__()
print('D结束')
zs=D()
print(D.mro())#继承关系
Python中的super()方法设计目的是用来解决多重继承时父类的查找问题,所以在单重继承中用不用 super 都没关系
super()的好处就是可以避免直接使用父类的名字.主要用于多重继承
如果你要改变子类继承的父类(由A改为B),你只需要修改一行代码(class C(A): -> class C(B))即可,而不需要在class C的大量代码中去查找、修改基类名,另外一方面代码的可移植性和重用性也更高。