#类的继承方式: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 pass12 obj=D()
执行结果是打印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 pass13 obj=D()
执行结果是打印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 pass10 # def __init__(self):11 # print("C")12 class D(B,C):13 pass14 obj=D()
执行结果是打印A
同理:多继承的方法和这个原理相同,多继承中参数的次序是对子类的继承有影响的