如果我遗漏任何明显的东西,我深表歉意。有没有办法查看值是否在枚举中,如果是,则返回True,否则返回False?例如,如果我从python文档中获取以下枚举,
from enum import Enum
class Colour(Enum):
RED = 1
GREEN = 2
BLUE = 3
有什么方法可以执行以下操作或等效操作,而不会引发异常:
colour_test = "YELLOW"
if Colour[colour_test]:
print("In enum")
else:
print("Not in enum")
## Output wanted - "Not in enum"
## Actual output - KeyError: "YELLOW"
我知道我可以使用try; except语句,但是我不想在这种情况下使用,因为我想将此条件与其他一些条件一起使用。
枚举有一个__members__
字典,您可以检查:
if colour_test in Colour.__members__:
print("In enum")
else:
print("Not in enum")
您也可以在中使用通用方法hasattr
,但是对于某些非成员,这将返回错误结果"__new__"
:
if hasattr(Colour, colour_test):
print("In enum")
else:
print("Not in enum")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句