Python【经典类与新式类】

经典类多继承的调用方法顺序是:深度优先查询,如下图:

 

新式类多继承的调用方法顺序是:广度优先查询,如下图:

 

可以使用下面的代码进行实验验证:

#经典类
class A:
def __init__(self):
self.n = "A"

class B(A):
def __init__(self):
self.n = "B"

class C(A):
def __init__(self):
self.n = "C"

class D(B, C):
def __init__(self):
self.n = "D"

d = D()
print(d.n)


# 总结:
# 1、新式类继承object类,经典类不继承任何类
# 2、新式类:广度优先查询,经典类:深度优先查询(因为新式类讲究的是新,所以要找最近的,最新的;然后经典的讲究古老,所以更远更深的)
# 3、值得注意的是,我们上面是在python2中做的,在python3中不管是经典类还是新式类,都是采用的是广度优先查询,已经废弃2中的深度查询了

 


原文地址:https://www.cnblogs.com/mtszw/p/9122082.html