Python Glossary English

Python 3.7+dataclassesпонятие

dataclasses

модуль

Декоратор @dataclass и функции к нему: класс-запись, которому __init__, __repr__ и __eq__ пишутся по аннотациям полей автоматически.

Синтаксис

from dataclasses import dataclass

Берите dataclasses, когда класс в основном хранит данные: поля объявляются аннотациями, а конструктор и сравнение появляются сами. Неизменяемая запись без методов — это namedtuple, проверка и разбор входных данных — уже не задача этого модуля: типы аннотаций он не проверяет. Частая ошибка — изменяемое значение по умолчанию: список задают через field(default_factory=list).

Примеры

from dataclasses import dataclass
@dataclass
class Point:
    x: int
    y: int = 0
print(Point(1))  # → Point(x=1, y=0)
print(Point(1, 2) == Point(1, 2))  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности