Курс 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. Функция map() в Python
  2. Метод __irshift__ для побитового сдвига вправо
  3. Нахождение пересечения множеств
  4. Глобальные переменные в Python
  5. Оптимизация гиперпараметров в Python
  6. Генераторы по генератору
  7. Проверка списка: any() и all()
  8. Создание объекта времени
  9. Использование html-скриптов в Jupyter Notebook
  10. Библиотека Emoji: использование смайлов в Python
  11. Переменные в Python: сокращение гласных
  12. Логирование с Logzero
  13. Оператор (*) в Python
  14. Основы работы с os
  15. Метод invert для побитового отрицания
  16. Многострочные комментарии в Python
  17. Codecademy в Telegram
  18. Транспонирование 2D-массива с помощью zip
  19. Создание GUI на Tkinter
  20. Проверка индексов коллекции
  21. Работа с процессами в Python
  22. SciPy: широкий функционал для математических операций
  23. Быстрый поиск кода
  24. Оператор in для проверки наличия элемента
  25. Создание тестовых данных с Faker
  26. Метод округления чисел
  27. Карта бомбоубежищ в Москве и Питере
  28. Декоратор Property в Python
  29. Курсы Яндекс Практикум
  30. Оптимизация создания строк
  31. Поиск с библиотекой Google
  32. Исключение NotImplementedError
  33. Реализация операции -= для пользовательского класса
  34. Разделение строк методом split()
  35. Создание словаря через dict comprehension
  36. Изменение списка срезом
  37. Работа с модулем random
  38. Фильтрация списка от «ложных» значений
  39. Проверка надежности пароля на Python
  40. Модуль pprint: улучшение вывода данных
  41. split() — разделение строки
  42. Функция zip() для объединения списков
  43. Оператор «is not» в Python
  44. Декодирование байтов в строку

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