class A(object):
def a(self):
self.b()
def b(self):
print('A---b')
class B(A):
def b(self):
print('B---b')
def c(self):
super(B, self).a()
B().c() # B---b
# 结论1:子类重写父类的b方法,并且这个父类的b方法在父类的方法a中被调用,
# 则当子类调用父类的a方法时,a中会调用子类中被重写的b方法,而不会调父类的原始b方法。
class A(object):
def a(self):
print('--------A--------')
class B(object):
def a(self):
print('--------B--------')
class C(object):
def a(self):
print('--------C--------')
class D(A,B,C):
def b(self):
super(D, self).a() # 会自左向右先调用D以后的类(A)中的a方法
super(A, self).a() # 会自左向右先调用A以后的类(B)中的a方法
super(B, self).a() # 会自左向右先调用B以后的类(C)中的a方法
D().b()