python-继承

python和Java的区别

1、java 多继承 Python是一个类可以继承N个类

2、pathon 单继承 Java只能继承一个类

关键字class

子类继承父类,继承了什么?

1.变量(数据属性) 2.实列属性 3.方法

方法1: super().__init__(name,age)
方法2: 父类名.__init__(self,name,age)

 

 

 

 3.方法

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

 

 继承原则

(简单来说,从左到右、从上到下的实践方法其实也是遵循的MRO原理,是从mro中总结出来的,根本上的顺序就是mro的输出结果。说白了就是先找自己、再从左到右找(因为是线性查找,自己重写了父类的方法就从自己这儿找到了,自己没重写的话,就是从左到右找)。

原理

在Python中,基于MRO的解析顺序规则,就会从左到右开始查找基类,如果找到第一个匹配的属性类,就会停止查找,如果没有,那么就继续查找,直到查找到如何要求的为止。MRO其实就是通过一个C3线性化算法来实现的,它的核心思想为:

1、子类会优先于父类检查

2、多个父类会根据它们在列表中的顺序被依次检查(如下图mro输出的列表,也就是从左到右)

3、如果对下一个类存在两个合法的选择,只能选择第一

 

 

多态

多态的优势为:
增加了持续的灵活性
增加了持续的额外扩展的功能

 

 

举例

class A:
def show(self):
print('A')

class B(A):
pass

class C(A):
def show(self):
print('C')

class D(B,C):
pass

if __name__ == '__main__':
obj=D()
obj.show()
obj=d()

 

python2 执行结果a

python3 执行结果c

(就是在这里面找 而d里面包括b和c obj.show() 就是在b和c里面找这个show方法 show方法在c 所以是c)

posted @   Yvonne_26J  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示