【发布时间】:2015-09-22 14:50:31
【问题描述】:
我在 Python 2.7 中使用 Enum backport enum34。
根据文档,应该可以使用项目访问按名称访问枚举成员。也就是说,以下应该起作用:
from enum import Enum
class Foo(Enum):
bar = 1
baz = 2
print(Foo['bar'])
但是,当我运行代码时,我在最后一行得到了这个错误:
TypeError: 'type' 对象没有属性 '
__getitem__'
我在这里遗漏了什么,或者这个功能只是没有在 2.7 反向移植中实现吗?
【问题讨论】:
-
为我工作(Python 2 和 Python 3)。
-
@vaultah:我刚刚在一个新的处女 virtualenv 中测试了它,我只安装了 enum34 并且它在那里工作。那么也许与其他一些包有冲突?知道如何追踪吗?
-
import enum; print(enum.__file__)告诉你什么是进口的?您可能在其他地方安装了不同的模块。然后将该文件与新的 virtualenvlib/python2.7/site-packages/enum/包内容进行比较,看看是否有旧版本。 -
@MartijnPieters 是的,它确实使用了不同的模块。感谢您的帮助。
标签: python python-2.7 enums backport