6.23 Python(10)

Python(10)

面向对象的特性

类的继承

java是单继承,python是多继承

1、普通方式继承

 

2、super继承

 

继承属性(数据属性、实例属性)、方法

 

方法重写:

当父类的方法没有办法满足子类的需求的时候,子类就会重写父类的发,那么子类实例化后的对象调用该方法,优先考虑的是子类的方法。

 

继承顺序:

1、从下到上 前提条件:(1)单个类继承(2)子类重写父类方法

2、从左到右 前提条件:子类继承多个类

 

继承的原理

所以在Python中,基于MRO的解析顺序规则,就会从左到右开始查找基类,如果找到第⼀个匹配的属性类,就会停⽌查找,如果没有,那就继续查找,直到查找到符合要求的为⽌。MRO其实就是通过⼀个C3线性化算法来实现的,它的核⼼思想为:⼦类会优先于⽗类检查,多个⽗类会根据它们在列表中的顺序被依次检查,如果对下⼀个类存在两个合法的选择,只能选择第⼀个。

 

错误继承

子类继承的父类必须是同一个阶层,即平等的关系。如果阶层不平等,会出现(MRO)错误。

 

深度优先与广度优先

Python2使用深度优先,则Python3使用广度优先

Python3:

 

类的多态(鸭子类型)

多态的优势具体可以总结为如下⼏点,具体为: 增加了持续的灵活性 增加了持续的额外扩展的功能

 

 

posted @ 2022-06-23 16:17  重逢Fate  阅读(10)  评论(0)    收藏  举报