我非常喜欢Enum,我想做以下事情:
class Color(Enum):
green = 0
red = 1
blue = 1
for color in Color:
print(color.name)
print(color.value)
如您所见,Color类中有重复的值。在这种情况下,我可以使用什么类替代方法来支持iterable,name,value?
答案 0 :(得分:3)
您是否在询问如何{% url 'mark_doc_request_complete' bpk=brokerage.pk pk=doc.pk %}
和 Color.red
Color.blue
成为blue
的别名?
如果是,您将需要使用documentation 1 库,它看起来像:
red
并在使用中:
from aenum import Enum, NoAlias
# python 3
class Color(Enum, settings=NoAlias):
green = 0
red = 1
blue = 1
# python 2
class Color(Enum):
_order_ = 'green red blue'
_settings_ = NoAlias
green = 0
red = 1
blue = 1
使用for color in Color:
print(color.name)
print(color.value)
# green
# 0
# red
# 1
# blue
# 1
的缺点是禁用了按值查找(您无法执行NoAlias
)。
1 披露:我是aenum
,Python stdlib Enum
和enum34
backport图书馆的作者。