python中的新式类和经典类的区别

  

python中的类分为经典类(旧式类)和新式类.python的新式类是2.2版本为了统一类和实例引进来的。

  

在Python2.x中默认都是经典类,只有显式继承了对象的才是新式类。   
如下所示:   <前>   <代码> #新式类,显示继承对象   类(对象):   通过   #经典类   甲级():   通过   #经典类   甲级:   通过      

在python3.x中取消了经典类,默认都是新式类,并且新式类不需要显式的继承对象对象。如下所示,这三种写法都可以,并无区别:

  <前>   <代码> #第一种   类(对象):   通过   #第二种   甲级():   通过   #第三种   甲级:   通过      

     新式类和经典类的区别

  
      <李>新式类都从对象继承,经典类不需要。   <李>经典类的> <代码> MRO MRO 算法采用C3算法广度优先搜索。   <李>新式类相同父类只执行一次构造函数,经典类重复执行多次。
  

新式类和经典类最大的不同在于继承搜索的顺序发生了改变。   
经典类采用深度优先搜索,也就是先深入继承树左侧查找,然后再返回,开始查找右侧:   <前>   <代码> A类:   def显示(自我):   print(“的”)   B类(一个):   def显示(自我):   打印(“B”)   C类(一个):   def显示(自我):   打印(“C”)   类D (B, C):   通过   d=d ()   d.show ()   #从B      

新式类采用广度优先搜索,先在水平方向查找,再向上查找:

  <前>   <代码>类(对象):   def显示(自我):   print(“的”)   B类(一个):   def显示(自我):   打印(“B”)   C类(一个):   def显示(自我):   打印(“C”)   类D (B, C):   通过   d=d ()   d.show ()   从C #      

参考:   https://www.9xkd.com/

python中的新式类和经典类的区别