Курс 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_decorator, вызов функции my_function будет автоматически заменен на вызов функции my_decorator(my_function), изменяя ее поведение.
Использование декораторов позволяет улучшить читаемость и поддерживаемость кода, разделяя логику функций от дополнительной функциональности. Они также позволяют повторно использовать код и упрощают внесение изменений в функциональность программы.
Другие уроки курса "Python"
- Локальные переменные.
- Работа с датой и временем в Python
- Docstring в Python
- Удаление дубликатов с помощью множеств
- Использование функции enumerate()
- Работа с коллекциями Python
- Атрибуты класса и экземпляра в Python
- globals и locals
- Многострочные строки в Python
- Логирование с Logzero
- Pretty-printing JSON в Python
- Отступы в Python
- Методы HTTP запросов в Flask
- Лямбда-функции для min/max
- Работа с файлами в Python
- Python Метод del.
- Обновление шаблона base.html
- Тест скорости набора текста на Python
- Управление браузером с Selenium
- Деление в Python
- Реализация операции -= для пользовательского класса
- Работа с парами ключ-значение
- Построение графиков в терминале с bashplotlib
- Ускорение кода с помощью векторизации
- Профилирование с Pandas
- Использование функции product
- Работа с геоданными с помощью geopy
- Импорт объектов из модулей
- Метод rmatmul для обратного матричного умножения
- Решатель судоку на Python с pygame
- Создание лямбда-функций
- Участие в LP стейкинге Waves
- Генераторы в Python
- Удаление дубликатов из списка
- Аргумент по умолчанию
- Исключение NotImplementedError
- Получение локальных переменных в Python
- Работа с комплексными числами в Python
- Метод split() для разделения строк
- Изменение регистра данных
- Проверка строки на палиндром
- Преобразование вложенного списка
- Приближение чисел в Python















