多继承

多继承 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 米的高度飞行

 

posted on 2018-08-28 21:49  zengsf  阅读(274)  评论(0)    收藏  举报

导航