🐍 Укус питона 🐍
2.88K subscribers
780 photos
4 videos
279 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Получение результата функции

Подобным образом можно получить результат функции и при необходимости изменить его, смотрим:

Здесь определена функция sum(), которая возвращает сумму чисел. В декораторе check проверяем результат функции и для простоты, если он меньше нуля, то возвращаем 0.

🐍 Укус питона // 💬 Чат // #теория #декораторы #функции
Параметры декоратора dataclass

С помощью параметров декоратор dataclass позволяет сгенерировать дополнительный шаблонный код и вообще настроить генерацию кода, смотрим код:

Рассмотрим базовые параметры:

• init: если равно True, то генерируется функция init(). По умолчанию равно True
• repr: если равно True, то генерируется функция repr(), которая возвращает строковое представление объекта. По умолчанию равно True
• eq: если равно True, то генерируется функция eq(), которая сравнивает два объекта. По умолчанию равно True
• order: если равно True, то генерируются функции lt (операция <), le (<=), gt (>), ge (>=), которые применяются для упорядочивания объектов. По умолчанию равно False
• unsafe_hash: если равно True, то генерируется функция hash(), которая возвращает хеш объекта. По умолчанию равно False

Кроме того, те функции, которые создаются по умолчанию, могут быть переопределены.

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы
Параметры декоратора dataclass. Продолжение.

Применение параметров:

В данном случае включаем генерирование хеша и функций упорядочивания, а также явным образом переопределяем функцию repr для создания строкового представления объекта.

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы
Модуль dataclass. Data-классы. Значения по умолчанию.

При необходимости атрибутам можно присвоить значения по умолчанию, если в конструкторе им не передаются значения, смотрим пример:

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы
Модуль dataclass. Data-классы. Добавление дополнительного функционала.

Хотя data-классы предназначены прежде всего для хранения различных данных, но также в них можно определять поведение с помощью дополнительных функций:

🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data #декораторы