在 Python 中将枚举转换为字符串

在 Python 中将枚举转换为字符串

Convert an Enum to a String in Python

要在 Python 中将枚举转换为字符串:

  1. 访问枚举的名称,例如Color.RED.name.
  2. 访问枚举的值,例如Color.RED.value
  3. 或者,使用str()该类将值转换为字符串。
主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' # 👇️ human readable string representation print(Color.RED) # 👉️ Color.RED # 👇️ repr() shows the value as well print(repr(Color.RED)) # 👉️ <Color.RED: 'stop'> # 👇️ get name of enum print(Color.RED.name) # 👉️ RED # 👇️ get value of enum print(Color.RED.value) # 👉️ stop # 👇️ if enum value is int, you can convert it to str print(str(Color.RED.value)) # 👉️ stop
您可以使用枚举成员的namevalue属性来获取枚举的名称和值。

如果该值不是字符串并且您需要将其转换为一个字符串,请将其传递给
str()类。

或者,您可以__str__()在类中实现该方法。

主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' def __str__(self): return str(self.value) print(Color.RED) # 👉️ "stop"

_
_ str _ _ ()
方法由
内置
str(object)函数调用format()
print()返回对象的非正式字符串表示形式。

现在您可以直接获取枚举的值,而无需访问value
枚举成员的属性。

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

主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' name = 'RED' print(Color[name].value) # 👉️ 'stop' print(Color['RED'].value) # 👉️ 'stop'
当您事先不知道枚举成员的名称时(因为它是从文件中读取或从 API 中获取的),这很有用。

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)

您可以使用列表理解来检查特定值是否在枚举中。

主程序
from enum import Enum class Color(Enum): RED = 'stop' GREEN = 'go' YELLOW = 'get ready' # 👇️ check enum member type print(type(Color.RED)) # 👉️ <enum 'Color'> # 👇️ check if member belongs to Enum print(isinstance(Color.RED, Color)) # 👉️ True values = [member.value for member in Color] print(values) # 👉️ ['stop', 'go', 'get ready'] if 'stop' in values: # 👇️ this runs print('stop is in values')

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

发表评论