面向对象-继承实现的原理
继承的实现原理:
1、子类会先于父类
2、多个父类,会根据列表中的顺序被检查
3、如果对于下一个类存在两个合法的选择,选择第一个父类。
继承顺序(mro查找顺序)
1、新式类:广度优先
2、经典类:深度优先(一条道走到底)
在Python2中 经典类:没有继承object,以及它的子类都称之为经典类
在Python2中 新式类:继承object,以及它的子类都称之为新式类
在Python3中 新式类:都是新式类(广度)
#在Python2中 经典类:没有继承object,以及它的子类都称之为经典类 class Foo: pass class Bar(Foo): pass #在Python2中 新式类:继承object,以及它的子类都称之为新式类 class Foo: pass class Bar(Foo): pass #在Python3中 新式类:都是新式类(广度) class Foo: pass print(Foo.__bases__) class A(object): def test(self): print("from A") class B(A): # def test(self): # print('from B') pass class C(A): # def test(self): # print('from C') pass class D(B): # def test(self): # print('from D') pass class E(C): # def test(self): # print('from C') pass class F(D,E): # def test(self): # print('from F') pass print(F.mro()) # 新式类的查找顺序 f=F() f.test()