将具有零参数的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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee6417838983b46b24427dd29d341ee6df4222c045caecc6c3e1af7b4867409f |
|
MD5 | 7ebdffbfef2a975d44e28b75c556afb7 |
|
BLAKE2b-256 | ef43c87af38c44854b2f1fa2f8f7ce53b1a686fd01ebd386ffb98a9c0a63d4d6 |