Python Dataclasses
OOP Modern Tools
Dataclasses
`@dataclass` reduces boilerplate for classes that primarily store data.
Definition
from dataclasses import dataclass, field
from datetime import datetime
@dataclass
class Invoice:
total: float
customer: str
created_at: datetime = field(default_factory=datetime.utcnow)
- Generates
__init__,__repr__,__eq__automatically. - Use
field(default_factory=...)for mutable defaults.
Advanced options
frozen=True-> immutable instances.slots=True(Python 3.10+) -> reduces memory usage.kw_only=True-> keyword-only init parameters.