多继承 multiple inheritance
多继承是指一个子类继承自两个或两个以上的基类
语法:
class 类名(基类名1, 基类名2, ...):
...
说明:
1. 一个子类同时继承自多个父类,父类中的方法可以同时被继承下来
2. 如果两个父类中有同名的方法,而在子类中又没有覆盖此方法时,调用结果难以确定
多继承的问题(缺陷)
标识符(名字空间)冲突的问题
要谨慎使用继承
多继承的 MRO (Method Resolution Order) 问题
类的 __mro__ 属性
此属性用来记录类的方法查找顺序
super()函数就是根据__mro__来找的
class Car: def run(self, speed): print("汽车以", speed, "公里/每小时的数度行驶") class Plane: def fly(self, height): print("飞机以海拔", height, "米的高度飞行") class PlaneCar(Car, Plane): #继承了两个基类 pass a = PlaneCar() a.run(10) a.fly(100) 输出结果: tarena@tedu:~/zengsf/827$ python3 exercise827.py 汽车以 10 公里/每小时的数度行驶 飞机以海拔 100 米的高度飞行