如果我在 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_Enum 内部的每个单例(文档称为枚举成员)都有分隔符(例如,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 中获取类型名称的类似问题都暗示了这一点。