经典类深度优先,新式类是广度优先

Posted 未来的技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典类深度优先,新式类是广度优先相关的知识,希望对你有一定的参考价值。

#深度优先和广度优先
#新式类基本都是广度优先
class A:#如果没有具体继承类默认继承类是object
    def test(self):
        print(A)
class B(A):
    pass
    # def test(self):
    #     print(‘B‘)
class C(A):
   pass
    # def test(self):
    #     print(‘C‘)
class D(B):
    # def test(self):
    #     print(‘D‘)
    pass
class E(C):
    # def test(self):
    #     print(‘E‘)
    pass
class F(D,E):#新式类从左往右
    #F-D-B不找A,然后回到右边从E-C-A---object
    # def test(self):
    #     print(‘F‘)
    pass
f1=F()
f1.test()
print(F.mro())#mro列表F-D-B不找A,然后回到右边从E-C-A---object

 

以上是关于经典类深度优先,新式类是广度优先的主要内容,如果未能解决你的问题,请参考以下文章

Python中的广度优先和深度优先

Python自学之乐-python 2python 3中经典类新式类的深度和广度优先小结

继承顺序

day6 - 面向对象学习

类的继承查询策略:广度优先

Python学习-类的继承