我有一个这样定义的枚举:
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
转换为列表?如果不可能,如何检查值“是否属于枚举”?
如何将枚举对象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] 删除。
我来说两句