Курс 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_decorator, вызов функции my_function будет автоматически заменен на вызов функции my_decorator(my_function), изменяя ее поведение.

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

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

Автор урока

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

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

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

  1. Работа с Event() в threading
  2. Генераторы списков в Python
  3. Пустой оператор pass в Python
  4. Python: динамическая типизация и проверка типов
  5. Работа со строками в Python
  6. Сложение матриц в NumPy
  7. Проверка ввода с помощью isdigit
  8. Создание словарей с defaultdict()
  9. Конкатенация строк с join() в Python
  10. Разбиение текста в Python
  11. Измерение времени выполнения кода
  12. Запуск внешних программ с subprocess
  13. Копирование словарей и списков в Python
  14. Инверсия списка/строки в Python
  15. Изменение элемента списка
  16. Генераторы в Python
  17. Python Аргументы по умолчанию
  18. Magic Commands — улучшение работы с Python
  19. Транспонирование 2D-массива с помощью zip
  20. Изменение логики работы с временем
  21. Генераторные выражения и islice.
  22. Пропуск начальных строк с помощью dropwhile()
  23. Распаковка элементов массива
  24. Разница между датами
  25. Добавление элемента к кортежу
  26. Bootle — простой веб-фреймворк
  27. Импорт и использование модулей в Python
  28. Блок else в циклах Python
  29. Отправка POST запроса на сервер.
  30. Конкатенация строковых литералов
  31. Виртуальные среды в Python
  32. Замена символов в Python
  33. Гибкие функции Python
  34. %pinfo: получение информации об объекте
  35. Метод join для объединения строк
  36. Определение основы слова с showballstemmer
  37. Метод Self в Python
  38. Работа с JSON данными в Python
  39. Тип CodeType в Python.
  40. Перемешивание списка с shuffle()
  41. Множественное назначение в Python
  42. Замена текста с помощью sub
  43. Оператор морж в Python 3.8
  44. Логирование в Python
  45. Потоковый ввод в Python
  46. Python: Фильтрация списков с помощью filter()

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