多继承
class Base:
    def test(self):
        print("----Base")
class A(Base):
    pass
    # def test(self):
    #     print("-----A")
class B(Base):
    def test(self):
        print("-----B")
class C(A,B):
    pass
c = C()
c.test()
#调用方法查找顺序 类名.__mro__
print(C.__mro__)
结果:
-----B
(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class '__main__.Base'>, <class 'object'>)
 
![]()
class Base:
    def test(self):
        print("----Base")
class Base2:
    def test(self):
        print("----Base2")
class A(Base):
    def test(self):
        print("-----A")
class B(Base2):
    def test(self):
        print("-----B")
class C(A,B):
    pass
c = C()
c.test()
#调用方法查找顺序 类名.__mro__
print(C.__mro__)
结果:
-----A
(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.Base'>, <class '__main__.B'>, <class '__main__.Base2'>, <class 'object'>)
 
![]()
 
调用被重写的父类的方法
 1 class Person:
 2     def eat(self):
 3         print("---person eating---")
 4 
 5 class Man(Person):
 6     def eat(self):
 7         #调用被重写的父类的方法
 8         #第一种方法
 9         Person.eat(self)
10         #第二种方法
11         super().eat()
12         print("---man eating---")
13 
14 h = Man()
15 h.eat()