今天我尝试使用 aenum 进行枚举(就像这个答案: https: //stackoverflow.com/a/1695250/4720441):
orientation = Enum('red', 'yellow', 'green', 'orange')
但这在 aenum 库中产生了一个错误:
文件“C:\Python\27\lib\site-packages\aenum__init__.py”,第 1417 行,在 _get_mixins_ issubclass(base, Enum) 和 TypeError: issubclass() arg 1 必须是一个类
我怎样才能解决这个问题?
使用调用语法创建 Enum 的各种方法是:
# starts at 1
SomeEnum = Enum('SomeEnum', 'member1 member2 member3')
# starts at 1
SomeEnum = Enum('SomeEnum', ['member1', 'member2', 'member3'])
# values manually assigned
SomeEnum = Enum('SomeEnum', [('member1', 3), ('member2', 4), ('member3', 5)])
# values manually assigned
SomeEnum = Enum('SomeEnum', {'member1': 6, 'member2': 7, 'member3': 8})
# starts at 9
SomeEnum = Enum('SomeEnum', 'member1 member2 member3', start=9)
Run Code Online (Sandbox Code Playgroud)
这在stdlib 版本、enum34和1中都是相同的。2包是一个旧式的库。aenumenum
stdlib 版本包含:
*enum34与 3.4 stdlib 相同。
aenum包含以上内容,加上:
以及各种助手来操纵枚举的构造:
以及额外的相关类型:
namedtuple,但使用元类而不是构建eval1声明:我是Python stdlibEnum、enum34backport和Advanced Enumeration ( aenum)库的主要作者。
2旧库的作者enum也对 stdlib 版本提供了帮助。