【问题标题】:Writing cross-compatible Python 2/3: Difference between __future__, six, and future.utils?编写交叉兼容的 Python 2/3:__future__、6、future.utils 的区别?
【发布时间】:2017-06-25 22:27:00
【问题描述】:

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

在使用这些软件包时有什么需要注意的区别吗?我应该混合和匹配它们,还是可以编写完全交叉兼容的代码,只用它们之一编写?

【问题讨论】:

    标签: python python-2.7 python-3.x six


    【解决方案1】:

    在python 2-3兼容性方面:

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

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

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

    似乎there is some agreementfuturesix 更受欢迎,如果您可以放弃对旧版本 python 的支持。

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多