Курс 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. Оператор continue в Python
  2. Создание копии итератора
  3. Создание объекта timedelta
  4. Вывод переменной и строки в Python
  5. Библиотека sh: использование команд bash в Python
  6. Запрос пароля с помощью getpass
  7. Namedtuple в Python
  8. JSON в Python: модуль, dump, dumps, load
  9. Магические методы в Python
  10. Функция zip() в Python
  11. Python и Монти Пайтон
  12. Сортировка в Python
  13. Управление User-Agent в Python
  14. Поиск подстроки в строке
  15. Наследование в программировании
  16. Бесконечная проверка в Python
  17. Тест скорости набора текста на Python
  18. Модуль xkcd: добавление юмора в Python
  19. Библиотека Emoji: использование смайлов в Python
  20. f-строки в формате строк
  21. Работа с модулем Calendar
  22. Анонимные функции в Python
  23. Сравнение неупорядоченных списков
  24. Цепные операции в Python
  25. Блок else в циклах.
  26. Распаковка аргументов в Python
  27. Выключение компьютера с помощью Python
  28. Тестирование модели в PyTorch
  29. Мощь вложенных функций в Python
  30. Генераторы словарей и множеств
  31. Многострочные строки в Python
  32. Генерация тестовых данных с factory_boy
  33. Переопределение метода __rshift__
  34. Форматирование строк в Python.
  35. Оптимизация создания строк
  36. OrderedDict — упорядоченный словарь
  37. Профилирование кода на Python
  38. Просмотр внешнего файла в Python
  39. TypedDict для kwargs в Python 3.12
  40. Подчеркивание в REPL
  41. Моржовый оператор в Python 3.8
  42. Правила именования переменных
  43. Метод radd для пользовательских чисел
  44. Библиотека funcy: удобные утилиты
  45. Метод ior для битовых операций
  46. Функции в Python
  47. Работа с функцией next() в Python

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