Курс 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. Метод difference_update() — разность множеств
  2. Функции в Python: создание и вызов
  3. Вычисление времени выполнения
  4. Ограничение ресурсов в Python
  5. Избегание циклических зависимостей классов в Python
  6. Измерение времени выполнения кода в Python
  7. Обработка исключений
  8. Искажение имен в Python
  9. Реализация операции -= для пользовательского класса
  10. Метод __irshift__ для Python
  11. Проверка вхождения подстроки
  12. Просмотр внешних файлов в %pycat
  13. Отделение звука от видео
  14. Поиск индексов в списке
  15. Отрицательные индексы списков
  16. Объединение словарей в Python
  17. Получение текущей даты и времени
  18. Структурирование данных с Pydantic
  19. Объединение словарей в Python
  20. Defaultdict в Python
  21. Сохранение и загрузка модели в PyTorch
  22. Удаление элементов из списка
  23. split() — разделение строки
  24. Создание новых списков через list comprehensions
  25. Мониторинг памяти с Pympler
  26. Python Ellipsis использование
  27. Изменение списка срезом
  28. Работа с областями видимости переменных
  29. Порядок операций в Python
  30. Типы возвращаемых значений в Python
  31. Подписка на каналы разработчиков
  32. Функции высшего порядка в Python
  33. Python defaultdict добавление ключа
  34. Основы Python за 14 дней
  35. Замена переменных в Python
  36. Функции all() и any() в Python
  37. Форматирование чисел в Python
  38. Многопоточность в Python
  39. Именованные срезы в Python
  40. Лимиты на ресурсы Python
  41. Хранение данных
  42. Основные методы NumPy
  43. Работа с парами ключ-значение
  44. Очистка данных в Python

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