⚡️ Упрощаем классы с данными
Модуль dataclasses позволяет упростить работу с созданием классов для хранения информации.
Так, декоратор dataclass самостоятельно определяет init, repr, eq и, если задано — сравнение (le, gt, etc), hash и запрет на изменение объекта.
Также стоит отметить, что все значения должны иметь тип, иначе они будут проигнорированы. И ещё — это обычный класс, значит вы по-прежнему можете добавлять свои методы.
Более развёрнуто — на сайте документации.
#миниурок #dataclasses
Модуль dataclasses позволяет упростить работу с созданием классов для хранения информации.
Так, декоратор dataclass самостоятельно определяет init, repr, eq и, если задано — сравнение (le, gt, etc), hash и запрет на изменение объекта.
Также стоит отметить, что все значения должны иметь тип, иначе они будут проигнорированы. И ещё — это обычный класс, значит вы по-прежнему можете добавлять свои методы.
Более развёрнуто — на сайте документации.
#миниурок #dataclasses
⚡️ Классы, хранящие данные
Если вы писали какие-либо системы, то вам точно было необходимо передавать данные между ними в классах. Чтобы упростить создание таких классов, разработчики придумали dataclass.
Это декоратор, переопределяющий
Как видно из примера выше, Point не имеет никаких методов для инициализации или вывода, но они переопределены. Это напоминает структуры из си-подобных языков.
Если вам стало интересно, можете почитать подробнее в документации.
#миниурок #dataclass
Если вы писали какие-либо системы, то вам точно было необходимо передавать данные между ними в классах. Чтобы упростить создание таких классов, разработчики придумали dataclass.
Это декоратор, переопределяющий
__init__
, __repr__
и другие, на основе переменных, определённых внутри класса.Как видно из примера выше, Point не имеет никаких методов для инициализации или вывода, но они переопределены. Это напоминает структуры из си-подобных языков.
Если вам стало интересно, можете почитать подробнее в документации.
#миниурок #dataclass