Dataclasses, представленные в Python 3.7, — это классы с декоратором @dataclass, которые автоматически генерируют методы-шаблоны на основе аннотированных полей. Они идеальны для классов, основное назначение которых — хранение данных.
from dataclasses import dataclass
@dataclass
class Point:
x: float
y: float
Декоратор @dataclass автоматически создаёт следующие методы:
__init__ — инициализирует объект, используя определённые поля в качестве параметров конструктора__repr__ — возвращает читаемое строковое представление объекта__eq__ — сравнивает два экземпляра по значениям их полейДополнительное поведение можно включить через параметры декоратора:
__hash__ — генерируется, когда установлены frozen=True или unsafe_hash=True, делая экземпляры хешируемыми__lt__, __le__, __gt__, __ge__) — включаются установкой order=Truefrozen=True делает экземпляры доступными только для чтения, как кортежиfield() для продвинутой конфигурацииmypyДекоратор @dataclass автоматически генерирует методы __init__, __repr__ и __eq__ для всех dataclass'ов без необходимости указания дополнительных параметров.
Новый — ещё не проверен сообществом
Вы