python中的新式类和旧式类
python中的新式类和旧式类 2018-05-15 python2中既有新式类又有旧式类 默认是经典类,只有显式继承object才是新式类 python3中只有新式类 默认是新式类,不必显式继承ojbect 新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而旧式类的MRO算法是采用深度优先搜索 新式类相同父类只执行一次构造函数,经典类重复执行多次。 新式类都从object继承,经典类不需要 以下是一个例子: class A: pass class B: pass class C(B): pass class D(C,A): pass 执行顺序为:D->C->B,->A class A(object): pass class B(object): pass class C(object): pass class D(A,B,C): pass 执行顺序为: D->A->B->C->Object 来源: https://www.cnblogs.com/aaron2932/p/aaron.html