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

首先了解一下什么是经典类,什么是新式类
 
经典类与新式类在python3中是没有任何区别的,主要区别是在python2中多继承的时候。
 
区别:
 
经典类是:深度优先
 
新式类是:广度优先
 
在python3里面都是广度优先
 
下面我们举例子来说明:
 
以下分析情况都是基于python2
 
1.这样定义A类,A是经典类,那么在继承后D调用x()方法的时候顺序是怎样的呢?
 
首先是从B类里面去找x()方法,如果B类中没有,就会从A类里面去找,如果A类中也没有x()方法,最后才会从C类里面去找;
 
2.那么如果A类定义的时候是新式类,那么在继承后D调用x()方法的时候顺序是怎样的呢?
 
首先是从B类里面去找x()方法,如果B类中没有,就会从C类里面去找,如果C类中也没有x()方法,最后才会从A类里面去找;
 
画个比较丑的图更直观的说明一下:

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63931.shtml

张贴在3