美文网首页
python中的新式类和经典类简析

python中的新式类和经典类简析

作者: 机械师的呆子 | 来源:发表于2017-11-09 20:25 被阅读0次

    Python新式类与经典类的区别

    1.新式类与经典类

    在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性;反之,即不由任意内置类型派生出的类,则称之为“经典类”。

    “新式类”和“经典类”的区分在Python 3之后就已经不存在,在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类”。

    2.继承顺序的区别

    主要是在多重继承时才会遇到这个问题。

    经典类的钻石继承是深度优先,即从下往上搜索;新式类的继承顺序是采用C3算法(非广度优先)。

    3.类实例类型的区别

    在经典类中,所有的类都是classobj类型,而类的实例都是instance类型。类与实例只有通过__class__属性进行关联。这样在判断实例类型时,就会造成不便:所有的实例都是instance类型。

    相关文章

      网友评论

          本文标题:python中的新式类和经典类简析

          本文链接:https://www.haomeiwen.com/subject/hvvmmxtx.html