Курс 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
- Работа с файлами в Python
- Работа с эмодзи в Python
- Извлечение данных из JSON
- Атрибуты массивов в Numpy
- Удаление ключей из словаря
- Красивый вывод списка
- Фильтрация списков с itertools
- Изменение логики работы с временем
- Решатель судоку на Python с pygame
- Замена элементов в списке с помощью генераторов списков
- Enum в Python
- Перемещение и удаление файлов в Python
- Измерение времени выполнения кода
- Символ подчеркивания в Python
- Оптимизация сравнения в Python
- Объединение итераторов
- Создание графиков в терминале
- discard() — удаление элемента из множества
- Операторы сравнения в Python
- Упрощенный вывод данных в Python
- Сортировка данных с лямбда-функциями
- Функция all() в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Операторы увеличения и уменьшения в Python
- Обработка элементов в Python
- Непрерывная проверка в Python
- Установка максимального количества цифр
- Проверка условий: all и any
- Именованные кортежи в Python
- Установка Python — Простое руководство
- Оператор del в Python
- Сравнение строк в Python
- Обработка исключения UnboundLocalError
- inspect в Python: анализ кода
- Декораторы с аргументами
- Создание словаря и множества
- Работа с буфером обмена на Python
- Инвертирование словаря
- Python Тесты и Гайды
- Цикл while в Python
- Функция с *args.
- Безопасные SQL-запросы в Python 3.11
- Python OrderedDict и fromkeys() — работа с словарями
- Работа с контекстными менеджерами















