如果我在python中有功能上创建的enum.Enum(在这种情况下为3.7),如何从中检索类的名称?
import enum
def print_the_enum_class_name(some_enum_class):
print(...) # ?
my_enum_class = enum.Enum('FunctionallyCreatedEnum','RED GREEN BLUE')
print_the_enum_class_name(my_enum_class) # Should print FunctionallyCreatedEnum
这似乎应该很简单,但是我在文档中找不到合适的成员,并且在.__dict__
内搜寻并进行dir(my_enum_class)
似乎也没有答案。
枚举(例如_name_
)中的每个单例(文档称为枚举成员)上都有print(my_enum_class.RED._name_) # prints RED
个下标,但类本身没有_name_
。还有一个普通的.name
是相同的。
因为
,它必须存储在某个地方print(repr(my_enum_class)) # prints <enum 'FunctionallyCreatedEnum'>
不幸的是
print(type(my_enum_class)) # prints enum.EnumMeta
print(my_enum_class.__class__.__name__) # also prints enum.EnumMeta
因此它似乎没有与类型相关联,这是关于在python中获取类型名称的许多类似问题所建议的。