5.27 Day21

一.继承
继承 : 一个类除了自身所拥有的属性方法之外,还获取了另外一个类的成员属性和方法
一个类继承另外一个类,那么该类就是子类(衍生类),被继承的这个类叫做父类(基类,超类)
继承:
(1) 单继承 (2) 多继承

python所有的类都默认继承父类 object

2.子父继承之后,如果子类里面有该成员属性方法,优先调用自己的,如果没有该成员,name调用父类的公有成员,如果都没有,直接报错.

二.多继承
1.super用法
(1)super本身是一个类 super()是一个对象 用于调用父类的绑定方法
(2)super() 只应用在绑定方法中,默认自动传递self对象 (前提:super所在作用域存在self)
(3)super用途: 解决复杂的多继承调用顺序

2.利用对象调用父类的属性和方法:self在调用父类成员的时候,如果本类里有,先调用自己的,没有,在调用父类的

3.利用super调用父类的属性和方法:
(1).super()只调用父类的相关公有成员,不会调用自己本类中成员,父类也没有的话,直接报错.
(2).super() 特指只调用父类, 和 self不同
注意:super()调用方法时,必须是绑定方法,默认传递该类的对象.

三.菱形继承
1.mro 列表 : super用途的体现,解决复杂的多继承调用顺序

类.mro() 返回的是方法调用顺序的列表,针对于多继承下的同名方法.按照列表的顺序依次调用.

2.issubclass 判断是否存在子父关系 (语法使用与isinstance的使用一模一样)
只要在一个继承链上即可(有血缘关系即可),应用范围在类的身上

3.isinstance 判断类型
只要在一个继承链上即可(有血缘关系即可),是在判断对象和类之间的关系

猜你喜欢

转载自www.cnblogs.com/cloudlzh/p/12976538.html