1. 程式人生 > >類的繼承查詢策略:廣度優先

類的繼承查詢策略:廣度優先

class ron pen python gif hid img 深度優先 先來


#類的繼承方式:breadth first廣度優先的查詢策略,繼承按照B——C——A的順序
註意:python2中經典類是按照深度優先來繼承的;新式類是按照廣度優先繼承的
pyhton3則完全按照廣度優先來繼承的
ex1:
技術分享
 1 class A(object):
 2     def __init__(self):
 3         print("A")
 4 class B(A):
 5     def __init__(self):
 6         print("B")
 7 class C(A):
 8     def __init__(self):
 9         print
("C") 10 class D(B,C): 11 pass 12 obj=D()
View Code

執行結果是打印B

ex2:

技術分享
 1 class A(object):
 2     def __init__(self):
 3         print("A")
 4 class B(A):
 5     pass
 6     # def __init__(self):
 7     #     print("B")
 8 class C(A):
 9     def __init__(self):
10         print("C")
11 class D(B,C):
12 pass 13 obj=D()
View Code

執行結果是打印C

ex3:

技術分享
 1 class A(object):
 2     def __init__(self):
 3         print("A")
 4 class B(A):
 5     pass
 6     # def __init__(self):
 7     #     print("B")
 8 class C(A):
 9     pass
10     # def __init__(self):
11     #     print("C")
12 class D(B,C):
13     pass
14 obj=D()
View Code

執行結果是打印A

同理:多繼承的方法和這個原理相同,多繼承中參數的次序是對子類的繼承有影響的

類的繼承查詢策略:廣度優先