Курс 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"
- Построение графиков в Matplotlib
- None в Python: использование и особенности
- Списковое включение в Python
- Транспонирование 2D-массива с помощью zip
- Объединение, распаковка и деструктуризация
- Работа с defaultdictами в Python
- Цикл for в Python
- Преобразование числа в список цифр
- Поиск шаблона в начале строки
- Переопределение метода __lshift__
- Логические значения в Python
- Измерение времени выполнения кода с использованием time
- Разделение строки с регулярными выражениями
- Работа с JSON в Python
- inspect в Python: анализ кода
- Python groupby() из itertools: работа с повторяющимися элементами
- Удаление URL-адресов в Python
- Переопределение метода delitem в Python
- Бесконечные списки в Python
- Удаление элементов из списка в Python
- Имена объектов в Python
- Python Метод Union Множеств
- Тестирование времени с Freezegun
- Поток данных в Python
- Строковое представление объектов
- Замер времени выполнения кода
- Извлечение новостей с newspaper3k
- Работа с прокси в Python
- Наследование в программировании
- Python и Юникод: работа с цифрами
- Сортировка и обратный порядок
- Сравнение строк в Python
- Defaultdict в Python
- Итераторы в Python
- Создание вложенного генератора
- Генераторы в Python
- Именованные аргументы в Python
- Параллельные вычисления в Python
- Сортировка списка по индексам
- Управление импортом в Python
- Делегирование в Python
- Метод enumerate() в Python
- Antigravity модуль
- Переопределение метода __or__()
- split() без разделителя















