Курс 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. Возведение в квадрат с помощью itertools
  2. Логирование с Logzero
  3. Добавление элементов в список: append() vs extend()
  4. Создание копии списка в Python
  5. Удаление пробелов методом translate()
  6. Управление User-Agent в Python
  7. Построение графиков в терминале с bashplotlib
  8. Декодирование строк в Python
  9. Работа со строками в Python
  10. Типы возвращаемых значений в Python
  11. Замер времени выполнения кода
  12. Итерация по копии коллекции
  13. Визуализация пропусков данных
  14. Игра «Угадывание чисел»
  15. Структурирование именованных констант
  16. Обработка ошибки IndexError
  17. Beautiful Soup — извлечение данных из HTML
  18. Тернарный оператор в Python
  19. Распаковка элементов последовательности
  20. HTTP-запросы с библиотекой Requests
  21. Очистка вывода в Python
  22. Работа с контекстными переменными
  23. Работа с OpenCV
  24. Аннотации типов в Python
  25. Работа с файлами в Python
  26. Создание GUI на Tkinter
  27. Оптимизация памяти с __slots__
  28. Применение функции к элементам списка
  29. Создание новых функций с помощью functools.partial
  30. Отправка POST-запроса в REST API
  31. Генератор чисел Фибоначчи
  32. Переопределение оператора % для объектов
  33. Создание новой даты в Python
  34. Генерация тестовых данных с factory_boy
  35. Преобразование типов данных в set comprehension
  36. Транспонирование 2D-массива с помощью zip
  37. Атрибуты класса и экземпляра
  38. Изменение объектов в Python
  39. Декоратор Ajax required
  40. Хранение переменных в Python.
  41. Хранение данных с помощью dataclasses
  42. Использование html-скриптов в Jupyter Notebook
  43. Метод ipow для возведения в степень
  44. Defaultdict в Python
  45. Параллельные вычисления в Python
  46. Отрицательные индексы списков
  47. Замена символов в строке
  48. Объединение словарей в Python
  49. Работа с модулем bisect

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