Python 程序查找枚举的字符串值


在 Python 中,枚举是一种用户定义的数据类型,由一组命名值组成。使用枚举定义一组有限的值,并且可以使用其名称而不是整数值在 Python 中访问这些值。枚举使代码更易于阅读,更易于维护,并强制执行类型安全。在本文中,我们将了解如何在 Python 中根据其字符串值查找枚举。

要根据字符串值查找枚举,我们需要遵循以下步骤

  • 在代码中导入 enum 模块

  • 使用所需的值集定义枚举

  • 创建一个函数,该函数以枚举字符串作为输入并返回相应的枚举值。

语法

from enum import Enum

class ClassName(Enum):
   Key_1= Value_1
   Key_2= Value_2
   Key_3= Value_3

为了在 Python 中使用枚举,我们需要导入一个枚举,然后创建一个类,该类将枚举值作为输入,并为每个枚举值包含键值对。

使用枚举提高代码可读性

除了根据名称查找值之外,枚举还可以提高代码的可读性。

示例

以下代码包含一个名为 process_color() 的函数,该函数以整数作为输入并返回指示正在处理的颜色消息。以下代码不被认为是良好的可读代码,因为我们必须记住每个整数值代表哪种颜色。我们可以使用枚举来提高代码的可读性。

def process_color1(color):
   if color == 1:
      print("Processing red color")
   elif color == 2:
      print("Processing green color")
   elif color == 3:
      print("Processing blue color")
   else:
      raise ValueError(f"{color} is not a valid color")

使用枚举,我们可以定义一个名为 color 的枚举,其值集与上述代码中相同。然后,通过创建一个名为 process_color 的简单函数,该函数以整数作为输入并使用枚举将整数转换为命名颜色值。如果输入不是有效的颜色,则它会引发带有详细错误消息的 ValueError。这使得代码更易于阅读,因为我们现在不必记住每种颜色的整数值。

class Color(Enum):
   RED = 1
   GREEN = 2
   BLUE = 3

def process_color(color):
   try:
      color = Color(color)
   except ValueError:
      raise ValueError(f"{color} is not a valid color")
   print(f"Processing {color.name.lower()} color")

结论

在本文中,我们了解了如何使用其命名字符串查找枚举值。枚举可以使代码更易于阅读并提高代码的可维护性。在任何涉及有限命名值集的项目中都应考虑使用枚举。

更新于: 2023年4月17日

7K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告