0%

Python基础--多继承

Python基础–多继承

MRO(Method Resolution Order):方法解析顺序

  • 在多继承中MRO 是被经常使用到的方法,因为牵涉到多继承的问题,不清楚到的最下面的子类继承的父类的顺序是什么,.这个是使用MRO就能准确直观的看到继承的顺序了

    格式为: class 类名(父类1,父类2)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # 定义父类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(基类)