Курс 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. Проекты на Python
  2. Аннотации типов в Python
  3. Функция zip() в Python
  4. Округление чисел с помощью round
  5. Логирование с Logzero
  6. Игра Виселица на Python
  7. Метод get для словаря
  8. Итераторы в Python
  9. Официальный канал Python в Telegram
  10. Замеры производительности в Python
  11. split() без разделителя
  12. Просмотр атрибутов и методов класса
  13. Оператор «and» в Python
  14. Декоратор для группы пользователей в Django
  15. Получение пути к текущему скрипту с помощью os
  16. Удаление знаков препинания в Python
  17. Избегайте изменяемых аргументов
  18. Скрытие вывода данных
  19. Таймер обратного отсчета
  20. Генераторы в Python
  21. Отрицательные индексы списков
  22. Поиск анаграмм с Counter
  23. Поток данных в Python
  24. Создание множества в Python
  25. Работа с модулем glob в Python
  26. Выбор редактора кода.
  27. Расчет времени выполнения кода
  28. Метод clear для коллекций
  29. Лямбда-функции в Python
  30. Оператор «моржа» (Walrus Operator)
  31. Создание объекта timedelta
  32. Mad Libs Generator
  33. Модуль pprint
  34. Группировка элементов Python
  35. Работа с deque в Python
  36. Регулярные выражения: метод match
  37. Срезы в Python
  38. Метод Self в Python
  39. Создание Telegram-бота на Python
  40. Работа с комплексными числами в Python
  41. Замена подстроки
  42. Flask: создание веб-приложений
  43. Модуль itertools: эффективная работа с итераторами
  44. Библиотека Emoji: использование смайлов в Python
  45. Оператор умножения для вектора
  46. Циклы в Python
  47. Метод join() для объединения элементов строки

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