测试价值
变体1
请注意,_member_names_具有一个名为in的成员(未记录...):
print(Fruit._value2member_map_)
# {4: , 5: , 6: }
您可以对照此地图测试值是否在_member_names_中:
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
变体2
如果您不想依赖此功能,则可以选择以下方法:
values = [item.value for item in Fruit] # [4, 5, 6]
或(可能更好):使用_member_names_; in运算符将更加高效:
values = set(item.value for item in Fruit) # {4, 5, 6}
然后用
5 in values # True
7 in values # False
将_member_names_添加到您的课程
然后可以将其作为方法添加到您的类中:
class Fruit(Enum):
Apple = 4
Orange = 5
Pear = 6
@classmethod
def has_value(cls, value):
return value in cls._value2member_map_
print(Fruit.has_value(5)) # True
print(Fruit.has_value(7)) # False
测试钥匙
如果要测试名称(而不是值),我将使用_member_names_:
'Apple' in Fruit._member_names_ # True
'Mango' in Fruit._member_names_ # False