【问题标题】:Future-compatible enums in 2.7?2.7 中与未来兼容的枚举?
【发布时间】:2013-05-15 05:22:46
【问题描述】:

this question 的答案中显示了许多实现枚举的方法。不过,PEP0435 现已发布,它描述了 Enum 和 IntEnum 将如何在 Python 3.4 中成为正式版本。

我的问题不是关于在 Python 中模拟枚举的特定方法的优缺点。相反,我想为我们这些仍然停留在 2.X 版本中的人提供有关最前向兼容方式的建议。

flufl.enum 最初将作为参考实现,但由于成员不是该类型的实例(并且允许同时具有其他成员的子类)而被删除。后者不会对日常产生太大影响,但也许前者会导致更多问题?

是否有任何库更接近于添加到 3.4 并与 2.7+ 兼容的库?

【问题讨论】:

    标签: python enums


    【解决方案1】:

    PyPI 上有一个可用的 PEP 435 枚举模块的后向端口 enum34。反向移植似乎是非官方的,但它是由 Ethan Furman 创作的,他是 Python 核心提交者,也是 PEP 435 的共同作者之一。

    backport 声明与 Python 2.4 及更高版本兼容。当然,在 Python 2 下,行为上存在一些相对较小的差异,但从我在 Pyhon 2.7 下的初步探索来看,我会说前向兼容性水平相当高。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      相关资源
      最近更新 更多