将神奇的零参数super()反向移植到python2
magicsuper的Python项目详细描述
magicsuper:backport魔法零参数super()将魔法零参数super()调用从python3迁移到python2
======================================================================br/>
在标准python2中使用超级的方法中,在标准python2中使用super的方法
内置,你必须调用super时,重复
类和实例对象,如下所示:
class hello(base):
def hello(self):
super(hello,self).hello()
您可以从python3获得更友好的行为,在python3中,它只需在运行时找出正确的调用:
class hello(base):
def hello(self):
super().hello()
当然,如果您想做一些奇怪的事情,您仍然可以显式地传递参数。有时候你真的想这样做,比如跳过方法解析顺序中的一些类。通过检查调用帧来确定要执行的函数
对象和调用它的对象,然后
遍历对象的“mro”链以找出该函数的定义位置。很难受,但似乎很管用…
======================================================================br/>
在标准python2中使用超级的方法中,在标准python2中使用super的方法
内置,你必须调用super时,重复
类和实例对象,如下所示:
class hello(base):
def hello(self):
super(hello,self).hello()
您可以从python3获得更友好的行为,在python3中,它只需在运行时找出正确的调用:
class hello(base):
def hello(self):
super().hello()
当然,如果您想做一些奇怪的事情,您仍然可以显式地传递参数。有时候你真的想这样做,比如跳过方法解析顺序中的一些类。通过检查调用帧来确定要执行的函数
对象和调用它的对象,然后
遍历对象的“mro”链以找出该函数的定义位置。很难受,但似乎很管用…