大部分面向对象的编程语言,都只支持单继承,即子类有且只能有一个父类。而 Python 却支持多继承(C++也支持多继承)。和单继承相比,多继承容易让代码逻辑复杂、思路混乱,一直备受争议,中小型项目中较少使用,后来的 Java、C#、PHP 等干脆取消了多继承。
继承的关系
MOR属性或MOR方法:(Method Resolution Order) 方法解析顺序,用来获得“类的层次结构”。
1、用法:
①类名._ _ mro _ _,返回结果为列表类型。
②类名.mro(),返回结果为元组类型。
2、案例:
# 汽油车类
class GasolineCar(object):
def run(self):
print('i can run with gasoline!')
# 电动车类
class ElectricCar(object):
def run(self):
print('i can run with electric!')
# 混动汽车
class HybridCar(ElectricCar, GasolineCar):
pass
# 了解一下以上代码的继承关系,到底HybridCar优先继承哪个类中的所有公共属性和公共方法呢?
print(HybridCar.__mro__)
print(HybridCar.mro())
结果: