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