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

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

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

Пример использования декораторов в 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"

  1. Настройка вывода NumPy
  2. Определение индекса элемента списка
  3. Преобразование текста в речь с Python
  4. Список импортированных модулей в Python
  5. Форматирование данных с помощью pprint
  6. Декораторы в Python
  7. Оптимизация памяти с помощью __slots__
  8. Отладка в командной строке
  9. Работа с кортежами
  10. Инициализация переменных
  11. Логирование с Logzero
  12. Удаление falsy-значений из списка с помощью filter
  13. Многострочные строки в Python
  14. Обратное распространение ошибки
  15. Работа с срезами в Numpy
  16. Расчет времени выполнения кода
  17. Обработка исключения UnboundLocalError
  18. Подсказки при вводе данных в Python
  19. Метод hash в Python
  20. Переворот списка в Python
  21. Применение функции к каждому элементу списка
  22. Отображение HTML кода в Python
  23. Python 3.12: Псевдонимы типов
  24. Создание комплексных чисел
  25. Получение значений из словарей
  26. Обновление и получение данных в SQLite
  27. Объединение множеств в Python
  28. Логический оператор «and» в Python
  29. Работа с асинхронными задачами в Python
  30. Частичное совпадение пользовательского ввода в Python 3.10
  31. Оператор Walrus в Python 3.8
  32. Объявление переменных в Python
  33. Создание namedtuple из словаря
  34. Форматирование даты с strftime()
  35. CSV строка разделение в Python
  36. Форматирование строк в Python.
  37. Удаление и повторная вставка ключа в OrderedDict
  38. Antigravity модуль
  39. Импортирование в Python
  40. Оператор assert в Python
  41. Принципы SRP и OCP
  42. Красивый вывод списка
  43. Сложение матриц в NumPy
  44. Настройка вывода в Numpy
  45. Измерение времени выполнения с помощью time
  46. Работа с *args и **kwargs в Python
  47. Блок else в циклах Python
  48. Запуск внешних программ с subprocess

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