将枚举转换为Python中的列表

用户12547645

我有一个这样定义的枚举:

def make_enum(**enums):
    return type('Enum', (), enums)

an_enum = make_enum(first=1, second=2)

在以后的某个时间点,我想检查一下,是否我作为函数中的参数使用的值是的一部分an_enum通常我会这样

assert 1 in to_list(an_enum)

如何将枚举对象an_enum转换为列表?如果不可能,如何检查值“是否属于枚举”?

用户2201041

如何将枚举对象an_enum转换为列表?

>>> [name for name in dir(an_enum) if not name.startswith('_')]
['first', 'second']

如何检查值“是否属于枚举”?

>>> getattr(an_enum, 'first')
1
>>> getattr(an_enum, '1')
Traceback [...] 
AttributeError: type object 'Enum' has no attribute '1'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章