Курс 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. Логирование с Loguru
  3. Оператор zip в Python
  4. Разделение строки с помощью re.split()
  5. Хеширование паролей с солью
  6. Отладка кода
  7. Создание тестовых данных с Faker
  8. Работа с переменными в Python
  9. Метод matmul для умножения матриц
  10. Метод rmatmul для обратного матричного умножения
  11. JSON-esque в Python
  12. Определение локальных переменных в Python
  13. Метод join() для объединения элементов строки
  14. Работа с модулем bisect
  15. Кортежи в Python: особенности и преимущества
  16. Тестирование модели в PyTorch
  17. Шаблоны и наследование в Flask
  18. Функции any() и all() в Python
  19. Оптимизация поиска в словарях
  20. Проблемы с dict в Python
  21. Импорт классов из другого файла
  22. Частичное применение функций в Python
  23. Функции map, filter, reduce
  24. Оператор «and» в Python
  25. Тернарный оператор в Python
  26. Копирование и вставка текста в Python
  27. Генератор списка в Python
  28. Очистка данных в Python
  29. Форматирование заголовков в Python
  30. split() — разделение строки
  31. Список методов и атрибутов
  32. Разделение строки в Python
  33. Инициализация структур данных
  34. Замыкания в Python
  35. Метод title() в Python
  36. Mad Libs Generator
  37. Поиск наиболее частого элемента в списке
  38. Модуль functools в Python
  39. Функция zip() в Python
  40. Python: цикл for и оператор присваивания
  41. Работа с типами данных в Python с помощью pydantic.
  42. Оптимизация памяти с помощью __slots__
  43. Работа с аргументами командной строки в Python
  44. Создание и удаление объектов
  45. Закрытие файла в Python
  46. Получение значений из словарей
  47. Генераторы данных
  48. Инверсия списка и строки

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