【发布时间】:2014-02-11 17:50:16
【问题描述】:
从没想过我需要这样做,但在这里我打算在 python 2.7 中使用枚举。
有 Barry 的 flufl.enum,PEP 435 说“……是这个 PEP 最初所基于的参考实现”。
但在 pypi 上也有一个反向移植 enum34。
这两个似乎都是半官方的,那么我应该在新代码中使用哪一个?
“应该有一种明显的方法来做到这一点”,但对于谷歌来说这是一个很难的话题,因为那里有几十个(数百个?)手动实现。而 python 3.4 枚举仍然只是一个候选版本。
我已经尝试过flufl.enum.Enum 和enum34.Enum,它们的行为完全不同——最明显的是__getitem__ 的不同语义。根据 Martijn Pieters 的 comment,反向移植具有挑战性,因为实现依赖于元类上的新 __prepare__ 函数。我已经完整阅读了this 帖子和PEP。
【问题讨论】:
标签: python python-2.7 enums