或者是否存在一个比另一个好的特定情况?
到目前为止,我收集到的只是未来仅适用于> = 2.6或> = 3.3。
我当前的代码非常基本,并且在python2和3上运行相同,除了使用print函数调用。但是,随着时间的推移,代码可能会变得越来越复杂,我想从一开始就使用正确的方法编写python2 / 3兼容代码。
答案 0 :(得分:2)
Python 2.7将不会在2020年之后维护,请参阅https://pythonclock.org/
因此,如果您刚刚开始学习python,我建议您直接使用python 3而不是使用python 2并导入__future__
。
答案 1 :(得分:2)
__future__
模块内置于Python,用于允许程序员提前使用尚未被视为完整的功能集。虽然某些功能(例如,from __future__ import print_function
)专门用于帮助将Python 2程序移植到Python 3,但它也可用于提前访问任何版本的高级功能。
__future__
是唯一的,因为某些导入(例如print_function
)实际上可以更改解释器接受的语法。
python-future
是第三方模块,是提供兼容性功能的几个模块之一。你也可以看一下six
,虽然它现在有些长了,python-modernize
。您很可能会发现需要同时使用__future__
和future
。
您可能没有考虑过的另一个策略是将源代码转换为可由2to3
实用程序自动翻译的Python 2。还有一个lib3to2
将翻译另一种方式,虽然我没有经验。
答案 2 :(得分:1)
除非你有非常具体的理由支持Python 2.x,否则Python 3.x就是未来。自发布以来已经超过10年了。
Python 2.7是2.x系列的最后一部,在2020年即将结束。https://www.python.org/dev/peps/pep-0373/
TLDR:是时候使用Python 3
了