Перерахування

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

Чому?

Наша IDE надає краще автодоповнення при використанні enum, і ми уникаємо (ускладнюємо) встановлення недійсних значень. Якщо ми спробуємо присвоїти колір, який не визначено в CarColor, Python видасть помилку. Це робить код більш надійним і простішим у підтримці. Чим менше можливих помилок може виникнути, тим кращу якість ми отримуємо в коді.

Уявіть, що у нас є функція, яка обробляє способи оплати: PayPal, VISA, MASTERCARD і BITCOIN. Використовуючи Enum для способів оплати, ми можемо забезпечити, щоб функція отримувала лише дійсні способи оплати, а не "MASTERCARDD" або "CASH", що може призвести до помилок у програмі.

Enum Meme

Easy Завдання 1 - Створіть Enum

Створіть Enum з назвою EyeColor та реалізуйте його в класі Person з попереднього модуля. EyeColor повинен мати наступні значення:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Enum широко використовується в розробці ігор

Якщо ви шукаєте в документації різних ігор, ви часто побачите, що вони використовують Enum для визначення таких речей, як зброя, вороги, рівні тощо. Це тому, що це полегшує обробку таких речей у коді та полегшує уникнення помилок.

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

Вітаю, тепер ви розумієте перерахування