跳转到主要内容

将具有零参数的super()函数回迁到python2

项目描述

这是一个尝试将具有零参数的super()调用从python3移植到python2的(糟糕、蹩脚、wtf-were-you-thinking)尝试。

在标准python2的super()内置函数使用中,你必须在调用super时重复类和实例对象,如下所示

class Hello(Base)
def hello(self)

super(Hello,self).hello()

使用autosuper,你可以获得python3中更友好的行为,它可以在运行时确定正确的调用

class Hello(Base)
def hello(self)

super().hello()

当然,如果你想进行某些奇怪的调用,你可以显式传递参数。有时你确实需要这样做,例如,在方法解析顺序中跳过一些类。

它是如何工作的?通过检查调用帧以确定正在执行的功能对象和被调用的对象,然后遍历对象的__mro__链以找出该函数在哪里定义的。真恶心,但似乎有效...

项目细节


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分发

autosuper-0.1.0.tar.gz (3.5 kB 查看哈希值)

上传时间: 源代码

支持者