正在休假的同事的代码类似于,例如:
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,有什么建议吗?
1条答案
按热度按时间bq3bfh9z1#
枚举的名称为
enum_type.__name__
。请注意,方括号查找(即
enum_type[value]
)实际上是按成员名称查找,而不是按成员值查找。成员值应为enum_type(value)
。