Python枚举值成员映射访问器?
我创建了一个枚举基类来标准化简单枚举的反向查找Python枚举值成员映射访问器?,python,python-2.7,Python,Python 2.7,我创建了一个枚举基类来标准化简单枚举的反向查找 from enum import Enum class ReversibleEnum(Enum): @classmethod def fromName(cls, str): return getattr(cls, str.lower()) @classmethod def fromValue(cls, value): return cls._value2member_map_[va
from enum import Enum
class ReversibleEnum(Enum):
@classmethod
def fromName(cls, str):
return getattr(cls, str.lower())
@classmethod
def fromValue(cls, value):
return cls._value2member_map_[value]
有没有一种官方的方法可以让你得到\u value2member\u map\u
指令?(或者有没有我错过的标准方法?)
谢谢 通过名称和值都支持获取成员:
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
>颜色['RED']#注意方括号
>>>颜色(1)
#注意圆括号
循环是不必要的。只需返回cls.\u value2member\u map\u[value]
(并捕获可能出现的KeyError
,以引发自定义异常)。哈哈,说得好。我也会修正这个例子。
>>> Color['RED'] # note square brackets
<Color.RED: 1>
>>> Color(1)
<Color.RED: 1> # note round parenthesis