Robocikowo>ROBOCIKOWO

Python — od podstaw do zaawansowanego · Dataclasses i Enums

@dataclass — klasy bez boilerplate

Dataclasses i Enums

Wprowadzenie

Dekorator @dataclass (PEP 557, Python 3.7+) generuje __init__, __repr__ i __eq__ na podstawie adnotacji typów. Zamiast 30 linii klasy-rekordu masz 3 linie. Tryby: zwykły (mutowalny), frozen=True (niemutowalny, hashowalny), slots=True (3.10+, oszczędza pamięć, blokuje nowe atrybuty), kw_only=True (3.10+, wszystkie pola jako keyword-only), order=True (generuje <, <=, >, >= po tuple wartości). Hook __post_init__ wykonuje walidację po __init__. Pomocnicze funkcje: asdict, astuple, replace, fields. Mutowalne defaulty (list, dict, set) są zakazane — używa się field(default_factory=...).