继承是面向对象编程的一个重要方式,可以扩展父类的功能,而Python作为热门的编程语言,同样具备该功能;除此之外,Python还有多重继承,本文记录 Python 多重继承相关内容。
()
括号中添加多个类,即可实现多重继承class Base1:
pass
class Base2:
pass
class MultiDerived(Base1, Base2):
pass
考虑一个丧心病狂的多重继承场景,继承顺序由左到右
class A:
def test(self):
print('class A called.')
pass
class D:
def test(self):
print('class D called.')
pass
class B(D):
def test(self):
print('class B called.')
pass
class C(B):
def test(self):
print('class C called.')
pass
class E(D):
def test(self):
print('class E called.')
pass
class F(D):
def test(self):
print('class F called.')
pass
class G(F):
def test(self):
print('class G called.')
pass
class H(E):
def test(self):
print('class H called.')
pass
class L:
def test(self):
print('class L called.')
pass
class I(G, L):
def test(self):
print('class I called.')
pass
class J(H, G):
def test(self):
print('class J called.')
pass
class K(J, I):
def test(self):
print('class K called.')
pass
class M(A, C, K):
def test(self):
print('class M called.')
pass
if __name__ == '__main__':
obj = M()
obj.test()
class M called.
class A called.
class C called.
class B called.
class K called.
class J called.
class H called.
class E called.
class I called.
class G called.
class F called.
class D called.
class L called.
DerivedClassName
, it is searched for in Base1
, then (recursively) in the base classes of Base1
, and if it was not found there, it was searched for in Base2
, and so on.