To jest tekst przetłumaczony maszynowo, który może zawierać błędy!
Wymienione typy danych (Enum)
Wymienione typy danych (enumerycje) to sposób na zdefiniowanie typu danych, który może przyjmować tylko ograniczony zestaw wstępnie określonych wartości. Umożliwia to łatwiejsze unikanie błędów, ponieważ zmienna może mieć wyłącznie poprawne wartości.
Typy enum nie służą ściśle do walidacji, ale pomagają nam ograniczyć wartości dopuszczalne dla zmiennej, co może przyczynić się do zapobiegania błędom.
Na przykład, jeśli masz klasę reprezentującą samochód, możesz użyć typu enum do zdefiniowania kolorów, jakie ten pojazd może posiadać:
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?
Nasz edytor kodu oferuje lepsze automatyczne uzupełnianie przy użyciu wyliczeń (enums), a my unikamy (lub utrudniamy sobie) ustawianie nieprawidłowych wartości. Jeśli spróbujemy przypisać kolor niezdefiniowany w CarColor, Python zgłosi błąd. Dzięki temu kod staje się bardziej odporny na błędy i łatwiejszy do utrzymania. Im mniej potencjalnych błędów może wystąpić, tym wyższa jest jakość naszego kodu.
Wyobraźmy sobie funkcję obsługującą metody płatności: PayPal, VISA, MASTERCARD oraz BITCOIN. Wykorzystanie wyliczenia (Enum) dla metod płatności pozwala nam zapewnić, że funkcja przyjmuje wyłącznie prawidłowe metody płatności, a nie np. "MASTERCARDD" lub "CASH", co mogłoby prowadzić do błędów w programie.
Zadanie 1 – Utwórz enuma
Utwórz enum o nazwie EyeColor i zaimplementuj go w klasie Person z poprzedniego modułu. EyeColor ma mieć następujące wartości:
BLUEBROWNGREENHAZEL
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.

