定义:继承是一种新建类的方式,新建的类称之为子类,被继承的类称之为基类、父类、超类
继承描述的是一种“遗传”的关系:子类可以重用父类的属性
注意:1.在python中支持一个子类同时继承多个父类
2.python中类分为两种:新式类:但凡继承object类,以及该类的子类都是新式类,在python3中默认继承object类
经典类:没有继承object类,以及子类都是经典类,之后python2中才分新式类与经典类
用处:减少代码冗余
调用父类的方法来减少代码冗余:方式一:指名道姓地访问某一个类的函数
注意:1.该方式与继承是没有关系的 2.访问某一个类的函数,没有自动传值的效果
通过类名.加方法名加参数来调用
方式二:只能在子类中使用 python2中:super(自己的类名,对象自己)python3中:super()
调用super()会得到一个特殊的对象,该特殊的对象是专门用来引用父类中的属性,完全参照mro表
注意:1.该方法与继承严格依赖与继承的mro列表 2.访问是绑定的方法,有自动传值的功能
super().方法名加参数
单继承背景下属性查找的顺序:对象-》对象的类-》父类-》....
多继承背景下属性查找的顺序:对象-》对象的类-》按照顺序从左到右的顺序一个个的分支的找下去
出现菱形继承:新式类:广度优先查找,在最后一个分支查找顶级类,有mro方法可以查看mro列表
经典类:深度优先查找,在第一个分支就查找顶级类