Курс 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. Срезы в Python
  2. Работа с прокси в Python
  3. Генерация ключей RSA
  4. Аргумент по умолчанию
  5. Список импортированных модулей в Python
  6. Транспонирование матрицы
  7. Срез в Python
  8. Подсказки типов в Python
  9. Метод ifloordiv для пользовательских классов
  10. Модуль functools в Python
  11. Проверка дубликатов в Python
  12. Flask — веб-фреймворк Python
  13. Замена текста в Python
  14. *args и **kwargs в Python
  15. ChainMap избыточные ключи
  16. Управление асинхронными задачами с помощью Semaphore
  17. Запрос DELETE с библиотекой requests
  18. Получение ID процесса
  19. Обработка исключений в Python
  20. Сравнение def и lambda функций в Python
  21. Инверсия списка и строки
  22. Генератор списка с условием if
  23. Обновление данных через PUT запрос
  24. Оператор continue в Python
  25. Изучение объектов с помощью dir()
  26. Просмотр атрибутов и методов класса
  27. Оптимизация памяти с помощью __slots__
  28. Создание детектора плагиата
  29. Генераторы в Python
  30. Оператор Walrus: правильное использование
  31. История Python
  32. Lambda Functions in Python
  33. Обработка данных в Python
  34. Оператор «not» в Python
  35. Генераторы списков
  36. Принцип одной функции
  37. Создание объекта timedelta
  38. Модуль os: работа с файлами и папками
  39. Запуск файлового сервера
  40. Декораторы с @wraps
  41. Управление ресурсами с контекстными менеджерами
  42. Импорт модулей в Python 3.12

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