Курс 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. Разделение функций на этапы
  2. Списки: объединение, изменение
  3. Создание Radio кнопок в tkinter
  4. Локальные переменные.
  5. Повторение элементов в Python
  6. Модуль array: создание и использование массивов
  7. Удаление элементов по срезу
  8. Срезы в Python
  9. Оператор continue в Python
  10. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  11. Применение промокода в Много лосося
  12. Декораторы в Python
  13. Создание namedtuple списком полей
  14. Управление контекстом выполнения кода
  15. Управление виртуальными средами в Python
  16. Функции min(), max(), sum()
  17. Оператор обр. импликации
  18. Список переменных с %who
  19. Метод ifloordiv для пользовательских классов
  20. Метод count() для списка
  21. Проверка элемента в множестве.
  22. Генераторы по генератору
  23. Блок else в обработке исключений
  24. Изменение регистра данных
  25. Руководство по использованию Colorama
  26. Декоратор total_ordering для сравнения объектов
  27. Декораторы в Python
  28. Имена объектов в Python
  29. Блок else в циклах.
  30. Генераторы в Python
  31. Удаление дубликатов в pandas
  32. Синхронизация потоков с time.sleep()
  33. Определение имен функций
  34. Логические операторы в Python
  35. Работа с YAML в Python
  36. Нан-рефлексивность в Python
  37. Переворот списка в Python
  38. %pinfo: получение информации об объекте
  39. Работа с контекстными менеджерами
  40. Реализация метода __abs__ в Python
  41. Управление браузером с Selenium
  42. Операции со строками в Python
  43. Monkey Patching в Python
  44. Взаимодействие с sys
  45. Поиск подстроки в строке
  46. Создание GUI с Tkinter: Entry
  47. Поиск шаблона в начале строки

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