Курс 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. Построение графиков в Matplotlib
  2. None в Python: использование и особенности
  3. Списковое включение в Python
  4. Транспонирование 2D-массива с помощью zip
  5. Объединение, распаковка и деструктуризация
  6. Работа с defaultdictами в Python
  7. Цикл for в Python
  8. Преобразование числа в список цифр
  9. Поиск шаблона в начале строки
  10. Переопределение метода __lshift__
  11. Логические значения в Python
  12. Измерение времени выполнения кода с использованием time
  13. Разделение строки с регулярными выражениями
  14. Работа с JSON в Python
  15. inspect в Python: анализ кода
  16. Python groupby() из itertools: работа с повторяющимися элементами
  17. Удаление URL-адресов в Python
  18. Переопределение метода delitem в Python
  19. Бесконечные списки в Python
  20. Удаление элементов из списка в Python
  21. Имена объектов в Python
  22. Python Метод Union Множеств
  23. Тестирование времени с Freezegun
  24. Поток данных в Python
  25. Строковое представление объектов
  26. Замер времени выполнения кода
  27. Извлечение новостей с newspaper3k
  28. Работа с прокси в Python
  29. Наследование в программировании
  30. Python и Юникод: работа с цифрами
  31. Сортировка и обратный порядок
  32. Сравнение строк в Python
  33. Defaultdict в Python
  34. Итераторы в Python
  35. Создание вложенного генератора
  36. Генераторы в Python
  37. Именованные аргументы в Python
  38. Параллельные вычисления в Python
  39. Сортировка списка по индексам
  40. Управление импортом в Python
  41. Делегирование в Python
  42. Метод enumerate() в Python
  43. Antigravity модуль
  44. Переопределение метода __or__()
  45. split() без разделителя

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