Курс 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. Работа с эмодзи в Python
  4. Извлечение данных из JSON
  5. Атрибуты массивов в Numpy
  6. Удаление ключей из словаря
  7. Красивый вывод списка
  8. Фильтрация списков с itertools
  9. Изменение логики работы с временем
  10. Решатель судоку на Python с pygame
  11. Замена элементов в списке с помощью генераторов списков
  12. Enum в Python
  13. Перемещение и удаление файлов в Python
  14. Измерение времени выполнения кода
  15. Символ подчеркивания в Python
  16. Оптимизация сравнения в Python
  17. Объединение итераторов
  18. Создание графиков в терминале
  19. discard() — удаление элемента из множества
  20. Операторы сравнения в Python
  21. Упрощенный вывод данных в Python
  22. Сортировка данных с лямбда-функциями
  23. Функция all() в Python
  24. Python groupby() из itertools: работа с повторяющимися элементами
  25. Операторы увеличения и уменьшения в Python
  26. Обработка элементов в Python
  27. Непрерывная проверка в Python
  28. Установка максимального количества цифр
  29. Проверка условий: all и any
  30. Именованные кортежи в Python
  31. Установка Python — Простое руководство
  32. Оператор del в Python
  33. Сравнение строк в Python
  34. Обработка исключения UnboundLocalError
  35. inspect в Python: анализ кода
  36. Декораторы с аргументами
  37. Создание словаря и множества
  38. Работа с буфером обмена на Python
  39. Инвертирование словаря
  40. Python Тесты и Гайды
  41. Цикл while в Python
  42. Функция с *args.
  43. Безопасные SQL-запросы в Python 3.11
  44. Python OrderedDict и fromkeys() — работа с словарями
  45. Работа с контекстными менеджерами

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