Перечисления

Skip to content

Это машинный перевод текста, который может содержать ошибки!

Перечисления (enums) — это способ определить тип данных, который может принимать только ограниченный набор заранее заданных значений. Это позволяет избежать ошибок, поскольку переменная может содержать только допустимые значения.

Строго говоря, перечисления не используются для валидации, но они помогают ограничить диапазон допустимых значений переменной и тем самым способствуют предотвращению ошибок.

Например, если у вас есть класс, представляющий автомобиль, вы можете использовать перечисление для определения цветов, которые этот автомобиль может иметь:

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

Почему?

Наша IDE обеспечивает более точное автодополнение при использовании перечислений, а мы избегаем (делаем это трудным) установки недействительных значений. Если мы попробуем присвоить цвет, который не определён в CarColor, Python выбросит ошибку. Это делает код более надёжным и простым в обслуживании. Чем меньше возможных ошибок может возникнуть, тем выше качество кода.

Представьте себе функцию, которая обрабатывает способы оплаты: PayPal, VISA, MASTERCARD и BITCOIN. Используя перечисление для способов оплаты, мы можем гарантировать, что функция принимает только допустимые методы платежа, а не "MASTERCARDD" или "CASH", которые могут привести к ошибкам в программе.

Enum Meme

Легко Задача 1 — Создайте перечисление (Enum)

Создайте перечисление (Enum), названное EyeColor, и реализуйте его в классе Person из предыдущего модуля. Перечисление EyeColor должно иметь следующие значения:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Перечисления (Enum) широко используются в разработке игр

Если вы откроете документацию к различным играм, то часто увидите, что они используют перечисления для определения таких вещей, как оружие, враги, уровни и тому подобное. Это потому, что это упрощает управление такими элементами в коде и помогает избежать ошибок.

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

Поздравляем! Теперь вы понимаете перечисления