Курс Python → Декораторы в Python
Декораторы в Python — это специальный синтаксис, который позволяет добавлять дополнительное поведение к функциям без изменения их исходного кода. Они позволяют расширить функциональность функций, не затрагивая их основной логики. Декораторы это функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию.
Для создания декоратора в Python, нам необходимо определить функцию-декоратор, которая принимает функцию в качестве аргумента и возвращает внутреннюю функцию. В этой внутренней функции мы можем выполнить дополнительный код до и после вызова переданной функции. Например, мы можем добавить логирование, проверки аргументов или обработку исключений.
def my_decorator(func):
def wrapper():
print("Дополнительный код до вызова функции")
func()
print("Дополнительный код после вызова функции")
return wrapper
@my_decorator
def my_function():
print("Основной код функции")
В приведенном выше примере мы создаем декоратор my_decorator, который выводит сообщения до и после вызова функции. Затем мы используем декоратор перед определением функции my_function. Когда мы вызываем my_function, она будет автоматически обернута в декоратор my_decorator, и дополнительный код будет выполнен до и после выполнения основной функции.
Использование декораторов позволяет повторно использовать код, улучшить читаемость и поддерживаемость программы. Они позволяют легко добавлять новую функциональность к существующим функциям, не изменяя их исходного кода. Декораторы часто используются для кеширования, логирования, валидации данных и других задач.
Другие уроки курса "Python"
- Отслеживание прогресса с tqdm
- Добавление кнопки в tkinter
- Метод __index__ в Python
- Работа с прокси в Python
- Применение функции к списку
- Итерация по итерируемым объектам
- Переопределение метода __floordiv__
- Применение функции map() в Python
- Работа с zip()
- Создание виртуальной среды
- Отправка HTTP-запросов в Python
- Закрытие файла в Python
- Работа со строками в Python
- Функции с дополнением
- Переопределение метода __eq__
- Объявление переменных в Python
- Декодирование байтов в строку
- Функция product() в Python
- Принципы Zen Python
- Изменения в обработке логических значений
- Переопределение метода sub
- Метод join() для объединения строк
- Область видимости переменных
- Сравнение объектов в Python
- Использование подчеркивания в REPL
- Метод join() для объединения элементов строки
- Обработка исключения UnboundLocalError
- Модуль xkcd: добавление юмора в Python
- Применение функций в Python
- Оператор объединения словарей
- Лямбда-функции для min/max
- Генерация строк с .join()
- Форматирование строк с % в Python
- Возведение в квадрат с помощью itertools
- Список переменных с %who
- Руководство по Pymorphy2
- Ускорение выполнения кода в Python
- Распаковка с оператором *
- Улучшенные подсказки для импорта в Python 3.12
- Список методов и атрибутов
- Оператор space-invader
- Уникальность ключей в словаре















