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