获取功能创建的enum.Enum类的名称

如果我在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中获取类型名称的许多类似问题所建议的。

chenyong715 回答:获取功能创建的enum.Enum类的名称

def print_the_enum_class_name(some_enum_class):
    print(some_enum_class.__name__)

:)

本文链接:https://www.f2er.com/3142182.html

大家都在问