Курс Python → Декораторы в Python

Декораторы в Python — это мощный инструмент, который позволяет изменять поведение функций или методов без изменения их собственного кода. Прежде всего, декораторы позволяют нам повторно использовать код, делая его более читаемым и модульным. При этом они позволяют добавлять функциональность к существующим функциям, не изменяя их исходный код.

Для создания декоратора в Python используется символ @, за которым следует имя декоратора. Декоратор — это функция, которая принимает другую функцию в качестве аргумента и возвращает новую функцию. Эта новая функция обычно содержит дополнительный код, который выполняется до или после вызова исходной функции.


def my_decorator(func):
    def wrapper():
        print("Дополнительный код перед вызовом функции")
        func()
        print("Дополнительный код после вызова функции")
    return wrapper

@my_decorator
def say_hello():
    print("Привет, мир!")

В приведенном выше примере функция say_hello() декорируется функцией my_decorator(). При вызове функции say_hello() будет сначала выполнен дополнительный код из декоратора, затем сама функция say_hello() и, наконец, еще один блок кода из декоратора. Таким образом, мы можем легко изменять и расширять функциональность наших функций.

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

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

Автор урока

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

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

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

  1. Метод __call__ в Python
  2. Python: библиотеки и функции
  3. Функции в Python
  4. Структура данных словарь в Python
  5. Метод matmul для умножения матриц
  6. Работа с путями в Python
  7. Работа с файлами и директориями в Python.
  8. Циклы for в Python
  9. Бесконечные списки в Python
  10. Группировка элементов Python
  11. Роль запятой в Python
  12. Декоратор total_ordering для класса Point
  13. Операторы Splat и splatty-splat
  14. Оператор морж в Python 3.8
  15. Генераторные функции в Python
  16. Библиотека sh: удобные команды терминала
  17. Преобразование списков в словарь
  18. Работа с итераторами через срезы
  19. Многострочные комментарии в Python
  20. IPython и Jupyter Notebook: руководство
  21. Поиск шаблона в строке
  22. Форматирование даты с strftime()
  23. Объединение словарей в Python
  24. Перемешивание списка с shuffle()
  25. Капитализация строк
  26. Изменение объектов в Python
  27. Работа с контекстными менеджерами
  28. Переворот строки
  29. Удаление символов новой строки в Python.
  30. Получение частей дроби
  31. Итераторы с потерямиZIP
  32. Запуск асинхронной корутины
  33. Модуль pprint: улучшение вывода данных
  34. Использование функции enumerate()
  35. Работа с модулем random
  36. Объединение словарей в Python
  37. Библиотека schedule: планировщик задач
  38. Метод __irshift__ для Python
  39. Проекты на Python
  40. Работа с кортежами в Python
  41. Lambda-функция в Python: использование с map() и sum()
  42. Метод rpow в Python
  43. Равенство и идентичность в Python
  44. Удаление элемента из списка в Python
  45. Новшества Flask 2.0

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