Python для продвинутых: ООП, типизация и тестированиеОткрытые материалыDataclass, NamedTuple или обычный класс в Python
Dataclass, NamedTuple или обычный класс в Python
Уроки курсаDataclass, NamedTuple или обычный класс в Python
@dataclass генерирует служебные методы для класса, описанного аннотациями: обычно __init__, __repr__ и __eq__. Это уменьшает шаблонный код, но оставляет полноценный класс с методами и явным поведением.
from dataclasses import dataclass
@dataclass(frozen=True, slots=True)
class Point:
x: float
y: float
def distance_squared(self) -> float:
return self.x ** 2 + self.y ** 2
frozen=True запрещает обычное изменение полей после создания, а slots=True может уменьшить память и запретить случайные новые атрибуты. Это настройки контракта, а не универсальные ускорители.
1 / 4
Далее →1 / 4
Далее →