或者是否存在一种比另一种更好的特定情况?
到目前为止,我收集到的信息是 future 仅适用于 >=2.6 或 >=3.3。
我目前的代码非常基础,除了使用 print 函数调用外,在 python2 和 3 上运行相同。然而,随着时间的推移,代码可能会变得更加复杂,我希望从一开始就使用正确的方法编写 python2/3 兼容代码。
请您参考如下方法:
__future__ 模块是 Python 的内置模块,允许程序员提前使用尚未完成的功能集。尽管某些功能(例如,from __future__ import print_function)是专门为帮助将 Python 2 程序移植到 Python 3 提供的,但它也用于提供早期访问权限任何版本的高级功能。
__future__ 是独一无二的,因为某些导入(例如 print_function)实际上可以更改解释器接受的语法。
python-future 是一个第三方模块,是提供兼容性功能的几个模块之一。您还可以查看 six,尽管它现在有些陈旧,还有 python-modernize。您很可能会发现需要同时使用 __future__ 和 future。
您可能没有考虑过的另一种策略是将您的源代码转换为 Python 2,它可以由 2to3 实用程序自动转换。还有一个 lib3to2 将以另一种方式进行翻译,尽管我没有使用它的经验。
