Wyliczenia

Skip to content

To jest tekst przetłumaczony maszynowo, który może zawierać błędy!

Enums (enumerations) to sposób definiowania typu danych, który może przyjmować tylko ograniczony zestaw wstępnie zdefiniowanych wartości. Ułatwia to unikanie błędów, ponieważ zmienna może mieć tylko prawidłowe wartości.

Enums ściśle rzecz biorąc nie służą do walidacji, ale pomagają nam ograniczyć, jakie wartości są prawidłowe dla zmiennej, a tym samym mogą pomóc w zapobieganiu błędom.

Na przykład, jeśli masz klasę reprezentującą samochód, możesz użyć Enum, aby zdefiniować, jakie kolory może mieć samochód:

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

Dlaczego?

Nasze IDE zapewnia lepsze autouzupełnianie podczas korzystania z wyliczeń i zapobiega (utrudnia) ustawianiu nieprawidłowych wartości. Jeśli spróbujemy przypisać kolor, który nie jest zdefiniowany w CarColor, Python zgłosi błąd. To sprawia, że kod jest bardziej niezawodny i łatwiejszy w utrzymaniu. Im mniej możliwych błędów może wystąpić, tym lepsza jakość kodu.

Wyobraź sobie, że mamy funkcję obsługującą metody płatności: PayPal, VISA, MASTERCARD i BITCOIN. Korzystając z Enum dla metod płatności, możemy zapewnić, że funkcja otrzyma tylko prawidłowe metody płatności, a nie "MASTERCARDD" lub "CASH", co może prowadzić do błędów w programie.

Enum Meme

Easy Zadanie 1 - Utwórz Enum

Utwórz Enum o nazwie EyeColor i zaimplementuj go w klasie Person z poprzedniego modułu. EyeColor powinien mieć następujące wartości:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Enum jest szeroko stosowane w tworzeniu gier

Jeśli sprawdzisz dokumentację różnych gier, często zobaczysz, że używają Enum do definiowania rzeczy takich jak broń, wrogowie, poziomy i tym podobne. Dzieje się tak, ponieważ ułatwia to obsługę takich rzeczy w kodzie i ułatwia unikanie błędów.

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

Gratulacje, teraz rozumiesz enums