老班风:
class BaseClass:
def m1(self):
return 1
class MyClass(BaseClass):
def m1(self):
return BaseClass.m1(self)
Run Code Online (Sandbox Code Playgroud)
新课堂风格:
class BaseClass(object):
def m1(self):
return 1
class MyClass(BaseClass):
def m1(self):
return super(MyClass, self).m1()
Run Code Online (Sandbox Code Playgroud)
使用新类样式有很多可能性,例如:
super(classname, ...).method()而不是parentclassname.method(...).父方法现在由MRO确定(之前,由您确定).__slots__ 是一个新功能,可以防止在对象中添加dict()并仅为该属性分配内存 __slots__@property,property()...)仅适用于新类样式.关于MRO,请查看文档Python 2.3 Method Resolution Order.在2.2之前,实施是:
首先是深度,然后是从左到右
而新的是C3,更复杂,但处理前一个没有正确处理的各种情况(查看python邮件列表上的Samuele Pedroni帖子).
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |