在 Python 中获取枚举值
How to get Enum values in Python
要在 Python 的枚举中获取值:
- 使用点表示法访问特定的枚举成员,例如
Color.GREEN
. - 访问
value
枚举成员的属性,例如Color.GREEN.value
。
主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' print(Color.GREEN.value) # 👉️ 'go' print(Color['GREEN'].value) # 👉️ 'go' print(Color.RED.value) # 👉️ 'stop' print(Color['RED'].value) # 👉️ 'stop'
您可以使用枚举成员的
name
和value
属性来获取枚举的名称和值。主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' print(Color.GREEN.value) # 👉️ 'go' print(Color.GREEN.name) # 👉️ 'GREEN'
您还可以使用方括号访问枚举成员。
主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' name = 'GREEN' print(Color[name].value) # 👉️ 'go' print(Color['GREEN'].value) # 👉️ 'go'
当您事先不知道枚举成员的名称时(因为它是从文件中读取或从 API 中获取的),这很有用。
您可以使用列表理解来检查特定值是否在枚举中。
主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' values = [member.value for member in Color] print(values) # 👉️ ['stop', 'go', 'get ready'] if 'go' in values: # 👇️ this runs print('go is in values')
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
in 运算符
测试成员资格。
例如,如果是 的成员,则x in l
计算为 ,否则计算为。True
x
l
False
for
如果需要遍历枚举,可以使用简单循环。
主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' for color in Color: print(color) print(color.name, color.value)