Курс 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. Преобразование списка в словарь через генератор
  2. Вывод букв строки в Python
  3. Работа с комплексными числами
  4. Работа с процессами в Python
  5. Работа с классами данных
  6. Удаление файлов и папок в Python
  7. Сравнение def и lambda функций в Python
  8. Декораторы в Python
  9. Управление ресурсами в Python
  10. Блок try…finally в Python
  11. Переименование файлов в Python
  12. Отделение звука от видео
  13. Python: отличительная особенность — отступы
  14. Оптимизация поиска в словарях
  15. Делегирование в Python
  16. Список импортированных модулей в Python
  17. Кортежи в Python: особенности и преимущества
  18. Объединение строк с помощью метода join
  19. Безопасные SQL-запросы в Python 3.11
  20. Функция print() — вывод информации
  21. Фильтрация списка от «ложных» значений
  22. Создание словарей в Python
  23. Оператор объединения словарей
  24. Наследование в программировании
  25. Моржовый оператор в Python 3.8
  26. Измерение времени выполнения с помощью time
  27. Принципы LSP и ISP в Python
  28. Реверс строки и списка в Python.
  29. Работа с YAML в Python: PyYAML.
  30. Цикл while в Python
  31. Обработка ошибок в Python
  32. Работа с enumerate()
  33. OrderedDict — упорядоченный словарь
  34. Генератор списка в Python
  35. Управление контекстом с помощью декоратора contextmanager
  36. Регистрация на хакатоне
  37. Основы работы со списками
  38. Переопределение метода divmod
  39. Поиск email
  40. Concrete Paths в Python
  41. Создание функций высшего порядка
  42. Namedtuple в Python
  43. Работа со слайсами
  44. Добавление цвета в консоли
  45. Принцип одной функции
  46. Метод eq для сравнения объектов
  47. Преобразование range в итератор
  48. Оператор in в Python

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