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


#类的继承方式: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

同理:多继承的方法和这个原理相同,多继承中参数的次序是对子类的继承有影响的

posted on 2017-10-28 00:42  Alan_chow  阅读(260)  评论(0编辑  收藏  举报

导航