Курс 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_function, она будет автоматически обернута в декоратор my_decorator, и дополнительный код будет выполнен до и после выполнения основной функции.

Использование декораторов позволяет повторно использовать код, улучшить читаемость и поддерживаемость программы. Они позволяют легко добавлять новую функциональность к существующим функциям, не изменяя их исходного кода. Декораторы часто используются для кеширования, логирования, валидации данных и других задач.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Отслеживание прогресса с tqdm
  2. Добавление кнопки в tkinter
  3. Метод __index__ в Python
  4. Работа с прокси в Python
  5. Применение функции к списку
  6. Итерация по итерируемым объектам
  7. Переопределение метода __floordiv__
  8. Применение функции map() в Python
  9. Работа с zip()
  10. Создание виртуальной среды
  11. Отправка HTTP-запросов в Python
  12. Закрытие файла в Python
  13. Работа со строками в Python
  14. Функции с дополнением
  15. Переопределение метода __eq__
  16. Объявление переменных в Python
  17. Декодирование байтов в строку
  18. Функция product() в Python
  19. Принципы Zen Python
  20. Изменения в обработке логических значений
  21. Переопределение метода sub
  22. Метод join() для объединения строк
  23. Область видимости переменных
  24. Сравнение объектов в Python
  25. Использование подчеркивания в REPL
  26. Метод join() для объединения элементов строки
  27. Обработка исключения UnboundLocalError
  28. Модуль xkcd: добавление юмора в Python
  29. Применение функций в Python
  30. Оператор объединения словарей
  31. Лямбда-функции для min/max
  32. Генерация строк с .join()
  33. Форматирование строк с % в Python
  34. Возведение в квадрат с помощью itertools
  35. Список переменных с %who
  36. Руководство по Pymorphy2
  37. Ускорение выполнения кода в Python
  38. Распаковка с оператором *
  39. Улучшенные подсказки для импорта в Python 3.12
  40. Список методов и атрибутов
  41. Оператор space-invader
  42. Уникальность ключей в словаре

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