Курс 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. Анонимные функции Lambda
  2. Работа с YAML в Python
  3. Структуры данных в Python
  4. Замена подстроки
  5. Итераторы с потерямиZIP
  6. Преобразование типов данных в set comprehension
  7. Работа с zip()
  8. Команда %dhist — список посещенных каталогов
  9. Python groupby() из itertools: работа с повторяющимися элементами
  10. Получение текущей даты и времени
  11. Проверка на палиндром
  12. Работа со стеком в Python
  13. Создание вложенного генератора
  14. Переопределение оператора % для объектов
  15. Избегайте ошибку FileNotFoundError
  16. Управление импортом в Python
  17. Сортировка и обратный порядок
  18. Генерация строк с .join()
  19. Разбиение строки в Python
  20. Тернарный оператор в Python
  21. Разделение строки с помощью re.split()
  22. Класс-оболочка для словарей
  23. Метод splitlines() для разделения строк
  24. Возврат нескольких значений из функции
  25. Равенство и идентичность в Python
  26. Работа со словарями с defaultdict из collections
  27. Python Метод Union Множеств
  28. Анонимные функции в Python
  29. Основы Python
  30. Форматирование строк в Python
  31. Блок try-except-else
  32. Установка и использование howdoi
  33. Работа со строками в Python
  34. Импорт классов из другого файла
  35. Создание и операции с дробями
  36. Переименование файлов в Python
  37. Объединение списков в Python.
  38. Получение срезов итераторов
  39. Преобразование в float
  40. Атрибуты класса и экземпляра
  41. Распаковка элементов последовательности
  42. Представление бесконечности в Python
  43. Python UserString — создание подклассов строк
  44. Python reversed() vs срез[::-1]
  45. Нахождение отличий в списках

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