我可以在 Python 2.5.6 中使用 Python 3 super() 吗? [英] Can I use Python 3 super() in Python 2.5.6?

查看:41
本文介绍了我可以在 Python 2.5.6 中使用 Python 3 super() 吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以使用干净的 Python 3 super() 语法在Python 2.5.6?
也许使用某种 __future__ 导入?

Can I use clean Python 3 super() syntax in Python 2.5.6?
Maybe with some kind of __future__ import?

推荐答案

您不能使用不包含类型/类的纯 super() 调用.你也不能实现一个有效的替代品.Python 3.x 包含对启用裸 super() 调用的特殊支持(它在类中定义的所有函数中放置一个 __class__ 单元变量 - 请参阅 PEP 3135

You cannot use a bare super() call that contains no type/class. Nor can you implement a replacement for it that will work. Python 3.x contains special support to enable bare super() calls (it places a __class__ cell variable in all functions defined within a class - see PEP 3135

更新

从 Python 2.6+ 开始,可以通过 future Python 包使用裸 super() 调用.有关解释,请参阅 posita 的回答.

As of Python 2.6+, bare super() calls can be used via the future Python package. See posita's answer for an explanation.

这篇关于我可以在 Python 2.5.6 中使用 Python 3 super() 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆