Курс 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. Метод eq для сравнения объектов
  3. Python: библиотеки и функции
  4. Анализ кода — Python
  5. Извлечение новостей с newspaper3k
  6. Создание списка через цикл
  7. Нан-рефлексивность в Python
  8. Работа с файлами и директориями в Python.
  9. Переопределение метода sub
  10. Объединение итераторов
  11. Определение относительного пути
  12. Создание уникального множества
  13. Вычисление натурального логарифма в NumPy
  14. Множества и frozenset
  15. Оптимизация поиска в словарях
  16. Метод rpow в Python
  17. Списковые включения в Python
  18. Тестирование с responses
  19. Инициализация переменных
  20. Проверка типа объекта в Python
  21. Разделение строки с помощью re.split()
  22. Работа с PosixPath() в Python
  23. Роль запятой в Python
  24. Инверсия списка/строки в Python
  25. Работа с collections в Python
  26. kwargs в Python
  27. Работа с комбинациями в Python.
  28. Отправка POST-запроса в REST API
  29. Документация функции help() в Python
  30. Преобразование в float
  31. Замена элементов в списке с помощью генераторов списков
  32. Бинарный поиск
  33. Python 3.12: переиспользование кавычек
  34. Генераторы списков в Python
  35. Получение списка кортежей из словаря
  36. Отправка поздравлений по дню рождения
  37. Проекты на Python
  38. Метод __ilshift__ для битового сдвига влево
  39. Модуль array: создание и использование массивов
  40. Подсчет элементов в списке с Counter
  41. Модуль itertools: эффективная работа с итераторами
  42. Безопасный доступ к значениям словаря
  43. Метод rrshift для пользовательских объектов

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