В чем плюсы и минусы dataclass в Python
Python
Middle
Без компании
В чем плюсы и минусы dataclass в Python
Ответы
**Плюсы:**
- Автоматически генерирует `__init__`, `__repr__`, `__eq__` и другие методы, сокращая boilerplate-код.
- Поддержка типизации через аннотации, что улучшает читаемость и проверку типов (с `mypy`).
- Неизменяемость через `frozen=True`.
- Легко добавлять дефолтные значения и порядок полей (`field(default=...)`).
**Минусы:**
- Менее гибкий, чем обычные классы (например, сложнее кастомизировать методы).
- Нет поддержки слабых ссылок (`__weakref__`) по умолчанию.
- Немного накладные расходы на создание (но обычно не критично).
**Пример:**
```
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int = 0 # Дефолтное значение
p = Point(1)
print(p) # Point(x=1, y=0)
```