Курс 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. Локальные переменные.
  2. Работа с датой и временем в Python
  3. Docstring в Python
  4. Удаление дубликатов с помощью множеств
  5. Использование функции enumerate()
  6. Работа с коллекциями Python
  7. Атрибуты класса и экземпляра в Python
  8. globals и locals
  9. Многострочные строки в Python
  10. Логирование с Logzero
  11. Pretty-printing JSON в Python
  12. Отступы в Python
  13. Методы HTTP запросов в Flask
  14. Лямбда-функции для min/max
  15. Работа с файлами в Python
  16. Python Метод del.
  17. Обновление шаблона base.html
  18. Тест скорости набора текста на Python
  19. Управление браузером с Selenium
  20. Деление в Python
  21. Реализация операции -= для пользовательского класса
  22. Работа с парами ключ-значение
  23. Построение графиков в терминале с bashplotlib
  24. Ускорение кода с помощью векторизации
  25. Профилирование с Pandas
  26. Использование функции product
  27. Работа с геоданными с помощью geopy
  28. Импорт объектов из модулей
  29. Метод rmatmul для обратного матричного умножения
  30. Решатель судоку на Python с pygame
  31. Создание лямбда-функций
  32. Участие в LP стейкинге Waves
  33. Генераторы в Python
  34. Удаление дубликатов из списка
  35. Аргумент по умолчанию
  36. Исключение NotImplementedError
  37. Получение локальных переменных в Python
  38. Работа с комплексными числами в Python
  39. Метод split() для разделения строк
  40. Изменение регистра данных
  41. Проверка строки на палиндром
  42. Преобразование вложенного списка
  43. Приближение чисел в Python

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