来源:python中国网 时间:2020-04-05

  多继承英文叫MultipleInheritance。在python中,一个A类可以继承B类,也可以同时继承B类和C类,这就是多继承。多继承有更复杂的情况,比如B类和C类还继承了D类和F类等等。本节课我们先讨论简单的情况,只有父类没有爷爷类的情况。

  我们直观的感受就是A类继承了B类和C类后应该拥有B和C共同的属性和方法。代码如下:

# -*- coding: utf-8 -*-


class WuGgong1:
    def fly(self):
        print("学武当的梯云纵...")


class WuGgong2:
    def skill(self):
        print("学九阳真经...")


class WuJi(WuGgong1,WuGgong2):
    def say(self):
        print("张无忌武功高强...")



if __name__ == "__main__":
    p1 = WuJi()
    p1.fly()
    p1.skill()
    p1.say()

学武当的梯云纵...
学九阳真经...
张无忌武功高强...



  问题来了,如果B类和C类有同名方法呢?我们感觉应该按照继承传参从左到右的顺序,先继承的谁就用谁的,结果也符合推论。代码如下:

# -*- coding: utf-8 -*-


class WuGgong1:
    def fly(self):
        print("学武当的梯云纵...")


class WuGgong2:
    def skill(self):
        print("学九阳真经...")
    def fly(self):
        print('九阳真经飞的更持久')


class WuJi(WuGgong1,WuGgong2):
    def say(self):
        print("张无忌武功高强...")



if __name__ == "__main__":
    p1 = WuJi()
    p1.fly()

学武当的梯云纵...