编写交叉兼容的Python 2/3:__future__,six和future.utils之间的区别



我正在这个备忘单的帮助下编写交叉兼容的Python 2和3代码。我注意到有不同的包和模块可以帮助做到这一点:future包(例如 future.utils等(、six包和内置__future__模块。

使用这些软件包时是否有任何需要注意的差异?我应该混合和匹配它们,还是可以编写完全交叉兼容的代码来编写仅使用其中一个代码?

在python 2-3兼容性方面:

__future__ - 是 Python 中的一个内置模块,它允许您在 Python 版本中使用可选功能,其中它们是可选的(相对于强制性的(。例如,unicode_literalspython2.7中是可选的,但在python3.0中成为强制性的。

six - 主要是重命名模块/功能以在python2python3之间产生更高的兼容性,但实际上并没有向后移植(或转发(功能。它也支持python版本>=2.4

future - 更现代,仅支持python>=2.6,>=3.3,并且功能更丰富。

似乎有一些共识,即如果您可以放弃对旧版本的 python 的支持,futuresix更可取。

相关内容

  • 没有找到相关文章

最新更新