枚举

Skip to content

这是一篇机器翻译的文本,可能包含错误!

Enums (枚举) 是一种定义数据类型的方式,该数据类型只能具有一组预定义的有限值。 这使得避免错误更容易,因为变量只能具有有效值。

Enums 严格来说不用于 验证,但它们帮助我们限制变量的有效值,从而可以帮助防止错误。

例如,如果您有一个代表汽车的类,您可以使用 Enum 来定义汽车可以拥有的颜色:

from enum import Enum

class CarColor(Enum):
    RED = "red"
    BLUE = "blue"
    GREEN = "green"
    BLACK = "black"
    WHITE = "white"

class Car:
    def __init__(self, make: str, model: str, year: int, color: CarColor):
        self.make = make
        self.model = model
        self.year = year
        self.color = color
        # 初始化汽车对象。
        # make: 汽车品牌。
        # model: 汽车型号。
        # year: 汽车生产年份。
        # color: 汽车颜色。

为什么?

我们的 IDE 在使用枚举时提供更好的自动补全,并且避免了(使之困难)设置无效值。 如果我们尝试将未在 CarColor 中定义的颜色分配给它,Python 将抛出错误。 这使得代码更健壮,更易于维护。 潜在错误的数量越少,代码质量就越高。

想象一下,我们有一个处理支付方式的函数:PayPalVISAMASTERCARDBITCOIN。 通过使用枚举来表示支付方式,我们可以确保该函数仅接收有效的支付方式,而不是 "MASTERCARDD""CASH",这可能导致程序中的错误。

Enum Meme

Easy 任务 1 - 创建一个 Enum

创建一个名为 EyeColor 的 Enum,并在前一个模块的 Person 类中实现它。EyeColor 应该具有以下值:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Enum 在游戏开发中被广泛使用

如果你在各种游戏文档中查找,你经常会看到它们使用 Enum 来定义武器、敌人、关卡等。这是因为这使得在代码中处理这些事情更容易,并且更容易避免错误。

https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server/blockpistonstate?view=minecraft-bedrock-stable

恭喜你现在理解枚举类型