检查名称是否存在于 Python 的枚举中
Check if a name exists in an Enum in Python
要检查名称是否存在于 Python 的枚举中:
- 使用列表理解来获取所有枚举名称的列表。
- 使用
in
运算符检查名称是否存在于列表中。 - 如果名称在列表中,
in
运算符将返回。True
主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 names = [member.name for member in Sizes] print(names) # 👉️ ['SMALL', 'MEDIUM', 'LARGE'] if 'SMALL' in names: # 👇️ this runs print('SMALL is in enum names')
我们使用列表理解来获取枚举名称的列表。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
最后一步是使用in
运算符检查特定名称是否在列表中。
in 运算符
测试成员资格。
例如,如果是 的成员,则x in l
计算为 ,否则计算为。True
x
l
False
或者,您可以__members__
在类上使用属性。
主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 # 👇️ {'SMALL': <Sizes.SMALL: 1>, 'MEDIUM': <Sizes.MEDIUM: 2>, 'LARGE': <Sizes.LARGE: 3>} print(Sizes.__members__) if 'SMALL' in Sizes.__members__: # 👇️ this runs print('SMALL is in enum names')
_ _ members _ _
属性是名称到成员的有序映射。
它包含枚举中定义的所有名称(包括别名)。
如果您需要检查枚举中是否存在特定值,请使用列表理解。
主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 values = [member.value for member in Sizes] print(values) # 👉️ [1, 2, 3] if 3 in values: # 👇️ this runs print('3 is in enum values')
我们没有访问name
属性,而是使用value
属性来获取枚举值的列表。