Курс 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`. При использовании декоратора `@my_decorator` перед определением функции `say_hello`, мы применяем его к функции `say_hello`.

Библиотеки, такие как Flask и aiogram, активно используют декораторы для управления маршрутами и обработчиками сообщений. Например, в Flask декоратор `@app.route(‘/’)` определяет маршрут для обработки HTTP-запросов к корневому URL. Это позволяет легко создавать веб-приложения с помощью Python.

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

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

Автор урока

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

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

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

  1. Создание таблиц в терминале с PrettyTable
  2. Очистка вывода в Python
  3. Экспорт данных с помощью writefile
  4. Оболочка Python
  5. Создание списков в Python
  6. Оператор in в Python
  7. Секреты Python
  8. Оператор is в Python
  9. TON Smart Challenge #2: участие и подготовка
  10. Извлечение статей с newspaper3k
  11. Работа с Path в Python
  12. Проблемы с именами переменных
  13. Модуль pprint: улучшение вывода данных
  14. Сравнение строк в Python
  15. Метод splitlines() для разделения строк
  16. Оптимизация гиперпараметров в Python
  17. Удаление falsy-значений из списка с помощью filter
  18. Именованные срезы в Python
  19. Ускорение обработки данных с %autoawait
  20. Работа с индексами списков
  21. Метод lt для сортировки объектов
  22. Библиотека Rich: форматирование текста
  23. Блок else в Python
  24. Открытие и запись файлов
  25. Генераторы в Python
  26. Выражения-генераторы в Python
  27. Просмотр внешних файлов в %pycat
  28. Создание копии списка в Python
  29. Генератор списка с условием if
  30. Структура строк в Python
  31. Изменяемые и неизменяемые объекты
  32. Определение локальных переменных в Python
  33. Удаление и повторная вставка ключа в OrderedDict
  34. Печать календаря
  35. Срез списка в Python
  36. Транспонирование 2D-массива с помощью zip
  37. Форматирование объектов с модулем pprint
  38. Разница между датами
  39. Методы HTTP запросов в Flask
  40. Форматирование даты с strftime()
  41. Определение объема памяти объекта
  42. Удаление дубликатов из списка с помощью dict.fromkeys
  43. Вложенные генераторы в Python
  44. Метод __index__ в Python
  45. Использование функции enumerate()

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