深度优先与广度优先(使用一个函数时,查找的优先级与顺序)
1.类为经典类时,多继承情况下,会按照深度优先查找
2.类为新式类时,多继承情况下,会按照广度优先查找
什么时新式类?什么是经典类?
当一个类继承objec时,它就是新式类,python3中取消了经典类,默认继承object,python3中的类为新式类
1 class D: 2 def test(): 3 print("D") 4 5 class C(D): 6 def test(): 7 print("C") 8 9 class B(D): 10 def test(): 11 print("B") 12 13 class A(B,C): 14 def test(): 15 print("A") 16 17 a=A() 18 a.test()
深度优先:当调用A类test函数时,如下图所示,先查找A类中有无test函数,再查找B类,再查找D类,最后查找C类。
广度优先:当调用A类test函数时,如下图所示,先查找A类有无test函数,再查找B类,再查找C类,最后查找D类。
原文:https://www.cnblogs.com/little-sailor/p/13411739.html