关于oop:python:旧样式(或经典)和新样式对象的方法解析顺序

Python : method resolution order of old-style (or classic) and new-style objects

我已经阅读了很多关于Python文档中的对象的内容,它们在某种程度上区分了这两个对象,比如:

  • 旧样式实例独立于它们的类,通过一个称为实例的内置类型实现。
  • 新样式类既不是用户定义的类型,也不是用户定义的类型。

有人能给我更多的解释一下这个"旧风格(或经典)和新风格"吗?

我不明白这句话想说什么:

"对于新样式的类,方法解析顺序会动态更改,以支持对super()的协作调用。"


龄级的方式: </P >

1
2
3
4
5
6
7
class BaseClass:
    def m1(self):
        return 1

class MyClass(BaseClass):
    def m1(self):
        return BaseClass.m1(self)

新的类型: </P >

1
2
3
4
5
6
7
class BaseClass(object):
    def m1(self):
        return 1

class MyClass(BaseClass):
    def m1(self):
        return super(MyClass, self).m1()

他们是一批大学的可能性,采用新的教学方式,如: </P >

  • super(classname, ...).method()去大学的parentclassname.method(...)。。。。。。。《亲子法现在是从(在)(私营决心,是决心用你)。
  • __slots__是一个新的特征是可以预防的add a dict()在你的《面向allocate存储器和只读的属性在__slots__
  • Python的置业(@propertyproperty()……)是只读的工作是新的教学方式。

关于)(私营,检查文件中的Python 2.3分辨率方法的阶。2.2之前,实现的是: </P >

depth first and then left to right

在纽约,一个是C3,多的更复杂,但handle的各种不同的情况下,对以前的一个不correctly(handle检查的pedroni萨缪埃利后在海南的Python list)。 </P >