文章目录
Python基础–多继承
MRO
(Method Resolution Order):方法解析顺序
- 在多继承中
MRO
是被经常使用到的方法,因为牵涉到多继承的问题,不清楚到的最下面的子类继承的父类的顺序是什么,.这个是使用MRO就能准确直观的看到继承的顺序了
格式为:
class 类名(父类1,父类2)
# 定义父类Cat
class Cat:
def bark(self):
""" 小猫叫"""
print("喵喵")
def eat(self):
"""食物"""
print("猫粮")
# 定义父类God
class God:
def fly(self):
"""飞翔"""
print("飘啊飘啊")
def eat(self):
"""没啥吃的,舔爪子"""
print("舔爪子")
# 定义多继承类FlyCat
# `PS`注意格式
class FlyCat(Cat, God):
# 多继承 ,逗号隔开,继承多个类的方法和属性
pass
dalianmao = FlyCat()
dalianmao.eat()
dalianmao.bark()
dalianmao.fly()
print(FlyCat.__mro__)
# print(FlyCat.__mro__)的输出为:
(<class '__main__.FlyCat'>, <class '__main__.Cat'>, <class '__main__.God'>, <class 'object'>)
# 根据mro的输出顺序,可以看到,对应的继承顺序为FlyCat--> Cat --> God --> object(基类)
Tips:这里推荐一个大佬的文章,介绍的MRO
非常详细,大家可以看下点击 窗口