检查名称是否存在于 Python 的枚举中

检查名称是否存在于 Python 的枚举中

Check if a name exists in an Enum in Python

要检查名称是否存在于 Python 的枚举中:

  1. 使用列表理解来获取所有枚举名称的列表。
  2. 使用in运算符检查名称是否存在于列表中。
  3. 如果名称在列表中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计算为 ,否则计算为TruexlFalse

或者,您可以__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属性来获取枚举值的列表。

发表评论