Курс 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"
- Оператор continue в Python
- Создание копии итератора
- Создание объекта timedelta
- Вывод переменной и строки в Python
- Библиотека sh: использование команд bash в Python
- Запрос пароля с помощью getpass
- Namedtuple в Python
- JSON в Python: модуль, dump, dumps, load
- Магические методы в Python
- Функция zip() в Python
- Python и Монти Пайтон
- Сортировка в Python
- Управление User-Agent в Python
- Поиск подстроки в строке
- Наследование в программировании
- Бесконечная проверка в Python
- Тест скорости набора текста на Python
- Модуль xkcd: добавление юмора в Python
- Библиотека Emoji: использование смайлов в Python
- f-строки в формате строк
- Работа с модулем Calendar
- Анонимные функции в Python
- Сравнение неупорядоченных списков
- Цепные операции в Python
- Блок else в циклах.
- Распаковка аргументов в Python
- Выключение компьютера с помощью Python
- Тестирование модели в PyTorch
- Мощь вложенных функций в Python
- Генераторы словарей и множеств
- Многострочные строки в Python
- Генерация тестовых данных с factory_boy
- Переопределение метода __rshift__
- Форматирование строк в Python.
- Оптимизация создания строк
- OrderedDict — упорядоченный словарь
- Профилирование кода на Python
- Просмотр внешнего файла в Python
- TypedDict для kwargs в Python 3.12
- Подчеркивание в REPL
- Моржовый оператор в Python 3.8
- Правила именования переменных
- Метод radd для пользовательских чисел
- Библиотека funcy: удобные утилиты
- Метод ior для битовых операций
- Функции в Python
- Работа с функцией next() в Python















