经典类多继承的调用方法顺序是:深度优先查询,如下图:
新式类多继承的调用方法顺序是:广度优先查询,如下图:
可以使用下面的代码进行实验验证:
#经典类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
相关资源:JAVA上百实例源码以及开源项目