美文网首页
python新式类和经典类的区别

python新式类和经典类的区别

作者: _十一月的萧邦 | 来源:发表于2018-03-30 17:50 被阅读138次

首先:

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

Python 3.x中默认都是新式类,不必显式的继承object

其次

新式类对象可以直接通过class属性获取自身类型:type
继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动
-新式类增加了slots内置属性, 可以把实例属性的种类锁定到slots规定的范围之中
新式类增加了getattribute方法

再然后
在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索。

最后

class A():
    def __init__(self):
        pass
    def save(self):
        print "This is from A"
class B(A):
    def __init__(self):
        pass
class C(A):
    def __init__(self):
        pass
    def save(self):
        print  "This is from C"
class D(B,C):
    def __init__(self):
        pass
fun =  D()
fun.save()

经典类的答案: This is from A
新式类的答案: This is from C

相关文章

  • Python 中的新式/经典类

    Python 新式/经典类 新式/经典类的区别从Python2.2开始,Python 引入了 new style ...

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

    Python新式类与经典类的区别 1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(...

  • Python 类

    新式类和旧式类 在python2.x的版本中,有“新式类”和“旧式类(也叫做经典类)”之分。新式类是python2...

  • 新式类、经典类

    继承 object 类的是新式类,不继承 object 类的是经典类,在 Python 2.7 里面新式类和经典类...

  • python super用法 2018-01-28

    新式类,经典类 python3之后均称为新式类,默认继承object类 Python2.x版本分为:分新式类与经典...

  • 类的继承顺序

    python2新式类继承object的类python2经典类未继承任何类的python2新式类和python3的继...

  • Flask 2019-10-08

    python2与python3都有经典类和新式类这两种写法,在python2中经典类和新式类的. 继承方式不一...

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

    Python中类分为两种:经典类和新式类: 新式类都从object继承,经典类不需要。 新式类的MRO算法曹勇c3...

  • 新式类和旧式类区别

    Python中类分两种:旧式类和新式类:➤新式类都从object继承,经典类不需要。 ➤新式类的MRO(metho...

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

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

网友评论

      本文标题:python新式类和经典类的区别

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