Python — od podstaw do zaawansowanego · Dataclasses i Enums
Enum, IntEnum, StrEnum, Flag — wyliczenia
Dataclasses i Enums
Wprowadzenie
Enum (moduł enum, od 3.4) daje nazwane stałe z gwarantowaną unikalnością i tożsamością. Zastępuje "magic strings" w kodzie: zamiast if status == "PENDING" piszesz if status is Status.PENDING. Zyski: autouzupełnianie w IDE, type checker łapie literówki, iteracja po wartościach, czytelny __repr__. Warianty: Enum (dowolna wartość), IntEnum (int + Enum, działa wszędzie gdzie int), StrEnum (3.11+, str + Enum), Flag i IntFlag (kombinacje bitowe — Permissions.READ | Permissions.WRITE). Funkcja auto() przypisuje rosnące wartości. Dekorator @unique zabrania aliasów. Iteracja: for s in Status: print(s).