我注意到Python中枚举的行为与其他语言不同。
当我第一次运行时,有些惊讶地发现输出结果是一个int
类型:
>>>import enum
>>>class Color(enum.Enum):
red = 1
>>>Color.red
1
我意识到我安装的是enum
而不是enum34
:
$ sudo apt-get install python-enum34
现在,结果是不同的:
>>>Color.red
<Color.red: 1>
我的当前应用程序接受enum
类型,其中我使用value.value
获取enum
的值。当然,如果安装了错误的enum
,这将引发异常。
我该如何处理这个问题?
enum
模块之外的其他模块吗?标准库中的那个不应该给你看到你所看到的结果。 - user2357112ipython
并尝试了这个例子。我得到了前面的输出。然后我安装了enum34
,我得到了后面的结果。 - nowoxenum.Enum
继承吗?你展示的代码片段显然不是从实际的解释器会话中复制粘贴的。 - user2357112enum.__file__
是什么?也许你的系统中有其他杂散的enum
模块。 - Blckknght