如何在 Python 中获取枚举名称

在 Python 中获取枚举名称

How to get Enum names in Python

使用name枚举成员的属性来获取名称,例如
Sizes.SMALL.name. 如果只有对应的值,就把值传给枚举类,访问name属性。

主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes.SMALL.name) # 👉️ SMALL # 👇️ access enum name by value print(Sizes(1).name) # 👉️ SMALL print(Sizes['SMALL'].name) # 👉️ SMALL
您可以使用枚举成员的namevalue属性来获取枚举的名称和值。
主程序
from enum import Enum class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 print(Sizes.MEDIUM.name) # 👉️ MEDIUM print(Sizes.MEDIUM.value) # 👉️ 2

您还可以使用方括号访问枚举成员。

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

如果您只有与枚举成员对应的值,请将其传递给枚举类并访问该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

如果需要获取枚举中所有名称的列表,则可以使用列表理解。

主程序
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'] values = [member.value for member in Sizes] print(values) # 👉️ [1, 2, 3]

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

in如果需要检查枚举中是否存在特定名称或特定值,则可以使用运算符。

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

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)

发表评论