Python:如何获得枚举的名称?

snz8szmq  于 2022-12-05  发布在  Python
关注(0)|答案(1)|浏览(294)

正在休假的同事的代码类似于,例如:

from enum import Enum

class MyEnum(Enum):
    A = 1
    B = 2

def lookup(enum_type: Enum, value: str) -> Any:
    try:
        return enum_type[value]
    except ValueError:
        # PROBLEM IS HERE
        enum_name = ???
        raise ConfigurationError(enum_name, value)

给定这样一个Enum,有什么方法可以检索它的名称吗?在本例中,我希望得到enum_name = 'MyEnum'。如果有必要,我们可以做一些解析,但如果能够得到Enum的名称,那将是非常方便的。
此外,PyCharm在查找时向我发出警告:

return enum_type[value]

建议:

Ignore an unresolved reference enum.Enum.__getitem__

我们使用的是Python 3.10,有什么建议吗?

bq3bfh9z

bq3bfh9z1#

枚举的名称为enum_type.__name__
请注意,方括号查找(即enum_type[value])实际上是按成员名称查找,而不是按成员值查找。成员值应为enum_type(value)

相关问题