我可以在Python 2.5.6中使用Python 3 super()吗?

我可以在Python 2.5.6中使用干净的Python 3super()语法吗?
也许是通过某种\uuuuuuuuuuuuuuuuuuu导入

我意识到这个问题很老了,选择的答案当时可能是正确的,但现在已经不完整了。您仍然不能在2.5.6中使用super(),但是python future为2.6+提供了一个后端口实现:

使用以下设备安装python future:

%pip将来安装

下面显示了内置项下对super的重新定义:

%python
...
&燃气轮机&燃气轮机&燃气轮机;导入系统
&燃气轮机&燃气轮机&燃气轮机;系统版本信息[:3]
(2, 7, 9)
&燃气轮机&燃气轮机&燃气轮机;
&燃气轮机&燃气轮机&燃气轮机;超级的
<键入“super”>
&燃气轮机&燃气轮机&燃气轮机;
&燃气轮机&燃气轮机&燃气轮机;从内置导入*
&燃气轮机&燃气轮机&燃气轮机;超级的
<位于0x000000010b4832e0的函数newsuper>
&燃气轮机&燃气轮机&燃气轮机;超级模块__
“future.builtins.newsuper”

它可以按如下方式使用:

内置导入super的


类Foo(对象):
def f(自我):
打印('foo')
分类栏(Foo):
def f(自我):
super().f()#<-哇,在那里
打印('bar')
b=巴()
b、 f()

哪个输出

foo
酒吧

如果使用pylint,可以禁用带有注释的旧警告:

\pylint:disable=缺少超级参数

发表评论