Курс 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. Логирование с Logzero
  2. Руководство по Pymorphy2
  3. Обмен значений переменных в Python
  4. Методы shutil для работы с файлами
  5. Поиск анаграмм с Counter
  6. Операции с массивами в NumPy
  7. Искажение имен в Python
  8. Блок else в обработке исключений
  9. Преобразование многоуровневого словаря
  10. Регулярные выражения: метод match
  11. JMESPath в Python
  12. Удаление элементов из списка
  13. Списки: объединение, изменение
  14. Определение имен функций
  15. Определение индекса элемента списка
  16. Работа со словарями
  17. Переменные в Python: сокращение гласных
  18. Метод split() для разделения строк
  19. Вставка переменных в шаблоны Flask
  20. Обработка ошибок в Python
  21. Конвертация коллекций в Python.
  22. Удаление элементов из списка в Python
  23. Сравнение def и lambda функций в Python
  24. Модуль antigravity: генерация координат
  25. Функции min(), max(), sum()
  26. Функциональное программирование в Python
  27. Форматирование строк в Python
  28. Метод add для класса Vector
  29. Открытие и запись файлов
  30. Работа с модулем random
  31. Функция с **kwargs в Python
  32. Генерация случайных чисел Python
  33. Генерация тестовых данных с factory_boy
  34. CLI-инструмент howdoi
  35. Классы данных в Python
  36. Генераторы в Python
  37. Создание словарей с defaultdict()
  38. Python Метод sleep() времени
  39. Принципы LSP и ISP в Python
  40. Декораторы в Python
  41. Python Метод del.
  42. Логические значения в Python
  43. Подсчет количества элементов в списке
  44. Управление экспортом элементов

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