Курс 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"

  1. Функции в Python: создание и вызов
  2. Многопроцессорное программирование в Python
  3. Списки: объединение, изменение
  4. Создание пользовательской коллекции в Python
  5. Метод get() в Python
  6. Декораторы для регистрации функций
  7. Работа с множествами в Python
  8. Импорт с альтернативным именем
  9. Основные функции и модули Python
  10. Динамическая типизация в Python
  11. Проверка существования переменной с оператором :=
  12. Работа с контекстным менеджером Pool
  13. Подробная информация о %pinfo
  14. Переопределение метода __and__
  15. Удаление дубликатов из списка с помощью dict.fromkeys
  16. Преобразование кортежа в словарь.
  17. Именованные срезы в Python
  18. TON Smart Challenge #2: участие и подготовка
  19. Форматирование кода на Python
  20. Экспорт данных в файл.
  21. Сложение матриц в NumPy
  22. Измерение времени выполнения кода с помощью time
  23. Копирование объектов в Python
  24. Добавление цвета в консоли
  25. Документирование функций в Python
  26. Метод __getitem__ в Python
  27. Статическая типизация в Python
  28. Работа с библиотекой xkcd
  29. Руководство по библиотеке pydantic
  30. Создание генераторов в Python
  31. Анализ кода — Python
  32. Работа с Event() в threading
  33. Отображение графиков в Jupyter с Matplotlib
  34. Автоматизация скриптов на AWS Lightsail.
  35. Функциональное программирование в Python
  36. Основы работы со списками
  37. Глобальные переменные в Python
  38. Транспонирование матрицы в Python
  39. PrettyTable: создание таблицы
  40. Счетчик в Python: most_common()
  41. Бесконечные списки в Python
  42. Работа с кортежами в Python
  43. Замена символов в Python
  44. Удаление и повторная вставка ключа в OrderedDict

Marketello читают маркетологи из крутых компаний