我可以在 Python 2.5.6 中使用 Python 3 super() 吗? [英] Can I use Python 3 super() in Python 2.5.6?
问题描述
我可以使用干净的 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屋!