多继承

社会主义新天地 提交于 2019-12-04 21:21:11

 

钻石继承法 A

D继承的B和C,B和C继承的A

 

#继承  单继承==减少了代码的重复性#继承表达的是一种  子类是父类的关系#钻石继承# class A:#     def func(self):print("A")# class B(A):#     def func(self): print("B")# class C(A):#     def func(self): print("C")# class D(B,C):#从做到右一个一个找,如果左边没有的话,不会去左边的上一级去找,会先看右边有没有,右边没有的话,会去上一级找#   pass# d=D()# d.func()#六边形继承# class F:#     def func(self):#         print("F")# class A(F):#     def func(self):print("A")# class B(A):#     def func(self): print("B")# class E(F):#     pass# class C(E):#     def func(self): print("C")# class D(B,C):#从做到右一个一个找,如果左边没有的话,不会去左边的上一级去找,会先看右边有没有,右边没有的话,会去上一级找#   pass# d=D()# print(D.mro())#mro方法可以查他的继承方式,mor只在新式类中使用#新式类的继承方式,遵循的是广度优先的方法#经典类中 深度优先class A(object):    def func(self):        print("A")class B(A):    def func(self):        super().func()        print("B")class C():    def func(self):        super().func()        print("C")class D(B,C):#从做到右一个一个找,如果左边没有的话,不会去左边的上一级去找,会先看右边有没有,右边没有的话,会去上一级找    def func(self):        super().func()        print("D")d=D()d.func()print(D.mro())#

#单继承

 #先抽象,几个类之间的代码抽象出来成为父类

 

 #子类没有自己的名字,之类可以使用父类的方法和属性

 #子类如果自己有的话,一定先使用自己的

 

 #在类中使用self的时候,一定要先看清楚self指向谁

#多继承

 #新式类和经典类

 #多继承寻找名字的顺寻:

    新式类广度优先

      #在新式类中有一个mro方法,可以查看广度优先的顺序

      #在python3中有一个super方法,可以查广度优先的顺序

    经典类广度优先

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!