python多继承中的深度优先与广度优先

深度优先与广度优先(使用一个函数时,查找的优先级与顺序)

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()
View Code

深度优先:当调用A类test函数时,如下图所示,先查找A类中有无test函数,再查找B类,再查找D类,最后查找C类。

广度优先:当调用A类test函数时,如下图所示,先查找A类有无test函数,再查找B类,再查找C类,最后查找D类。

原文地址:https://www.cnblogs.com/little-sailor/p/13411739.html