在 Python 中按值获取枚举名称

在 Python 中按值获取枚举名称

Get Enum name by value in Python

要按值获取枚举名称,请将值传递给枚举类并访问name属性,例如Sizes(1).name. 当值传递给类时,我们可以访问相应的枚举成员,我们可以访问该成员的name属性。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes(1).name) # 👉️ SMALL print(Sizes(2).name) # 👉️ MEDIUM print(Sizes(3).name) # 👉️ LARGE

Sizes(1)语法允许我们将整数传递给类并获取相应的枚举成员。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 value = 1 print(Sizes(value)) # 👉️ Sizes.SMALL print(Sizes(value).name) # 👉️ SMALL
当您事先不知道枚举成员的名称时(因为它是从文件中读取或从 API 中获取的),这很有用。

如果您需要获取枚举名称或值的列表,请使用列表理解。

主程序
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] names = [member.name for member in Sizes] print(names) # 👉️ ['SMALL', 'MEDIUM', 'LARGE']

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

如果您需要获取包含每个枚举成员的名称和值的元组列表,您可以使用相同的方法。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 result = [(member.name, member.value) for member in Sizes] # 👇️ [('SMALL', 1), ('MEDIUM', 2), ('LARGE', 3)] print(result)

每个元组中的第一个元素是名称,第二个元素是枚举成员的值。

in如果您需要检查一个值是否在枚举中,请使用运算符。

主程序
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 2 in values: # 👇️ this runs print('2 is in values')

in 运算符
测试成员资格

例如,如果是 的成员,则
x in l计算为 ,否则计算为TruexlFalse

for如果需要遍历枚举,可以使用简单循环。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 for size in Sizes: print(size) print(size.name, size.value)

发表评论