获取函数创建的enum.enum类的名称

2024-05-21 02:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

如果在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中获得一般类型名的类似问题所建议的那样与类型相关联


Tags: the函数name文档类型my成员enum