Python Community
13.1K subscribers
1.24K photos
25 videos
15 files
710 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Упрощаем классы с данными

Модуль dataclasses позволяет упростить работу с созданием классов для хранения информации.

Так, декоратор dataclass самостоятельно определяет init, repr, eq и, если задано — сравнение (le, gt, etc), hash и запрет на изменение объекта.

Также стоит отметить, что все значения должны иметь тип, иначе они будут проигнорированы. И ещё — это обычный класс, значит вы по-прежнему можете добавлять свои методы.

Более развёрнуто — на сайте документации.

#миниурок #dataclasses
⚡️ Классы, хранящие данные

Если вы писали какие-либо системы, то вам точно было необходимо передавать данные между ними в классах. Чтобы упростить создание таких классов, разработчики придумали dataclass.

Это декоратор, переопределяющий __init__, __repr__ и другие, на основе переменных, определённых внутри класса.

Как видно из примера выше, Point не имеет никаких методов для инициализации или вывода, но они переопределены. Это напоминает структуры из си-подобных языков.

Если вам стало интересно, можете почитать подробнее в документации.

#миниурок #dataclass