美文网首页
请简述python 经典类和新式类的区别?

请简述python 经典类和新式类的区别?

作者: 寧寧欧尼 | 来源:发表于2018-09-28 08:53 被阅读0次

    Python中类分为两种:经典类和新式类:

    • 新式类都从object继承,经典类不需要。
    • 新式类的MRO算法曹勇c3算法广度优先搜索,而经典类的MRO算法是采用深度优先搜索
    • 新式类相同父类只执行一次构造函数,而经典类重复执行多次
    • 新式类和经典类的最大不同之处在于,所有的新式类必须至少一个类,参数bases可以是一个或者多个用于继承的父类。
    扩展:object是所有类之母,如果你的类没有继承其它任何的父类,object将作为默认的父类,它作为所有类继承结构的最上层,如果你没有直接或者间接的子类化一个对象,那么你就定义了一个经典类,这里所说的没有子类化一个对象,也就说你没将任何一个类作为你的父类:
    class MyNewObjectType:
           'define MyNewObjectType classic class'
            class_suite
    

    如上面的代码所示,如果你没有指定一个父类,或者子类化时没有指定基本类,你这时创建的类就是一个经典类,经典类已经过时了,以后最好使用新式类。

    ➤Python 2.x中默认都是经典类,只有显式继承了object才是新式类

    ➤Python 3.x中默认都是新式类,经典类被移除,不必显式的继承object

    相关文章

      网友评论

          本文标题:请简述python 经典类和新式类的区别?

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