Курс Python → Декораторы в Python

Декораторы в Python — это специальные функции, которые могут изменить поведение другой функции или класса без изменения их собственного кода. Они позволяют добавлять дополнительную функциональность к существующему коду, не изменяя его исходную реализацию. Декораторы могут использоваться, например, для логирования, кэширования, проверки аргументов или управления доступом к функциям.

Для создания декоратора в Python используется символ @, за которым следует имя функции-декоратора. Функция-декоратор принимает другую функцию в качестве аргумента и возвращает новую функцию или класс. Это позволяет применять декоратор к другим функциям, чтобы изменить или расширить их поведение.


def square_decorator(func):
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        return result ** 2
    return wrapper

@square_decorator
def square(x):
    return x

В приведенном примере функция square_decorator() является декоратором, который принимает функцию в качестве аргумента и возвращает новую функцию, которая возводит результат выполнения исходной функции в квадрат. После применения декоратора @square_decorator к функции square(), результат ее выполнения будет возводиться в квадрат.

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

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

Автор урока

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

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

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

  1. Проверка условий: all и any
  2. Изменение регистра данных
  3. Оператор in для проверки наличия элемента
  4. Модуль pprint: улучшение вывода данных
  5. Retrying в Python: повторные вызовы
  6. Разделение строки с помощью split()
  7. Подсчет количества элементов в списке
  8. Оценка выражений генератора в Python
  9. Объединение списков с использованием itertools.chain
  10. Создание генераторов в Python
  11. Оператор space-invader
  12. Работа со словарями
  13. Python и Юникод: работа с цифрами
  14. Проверка строки на палиндром
  15. Обновление и получение данных в SQLite
  16. Работа с временем в Python
  17. Сортировка слиянием
  18. f-строки в формате строк
  19. Переменные класса и экземпляра
  20. Работа с утверждениями в Python
  21. Объединение Python и Shell
  22. Поиск всех индексов подстроки
  23. Сортировка списка по индексам
  24. Избегайте ошибку FileNotFoundError
  25. Методы __repr__ и __str__ в Python
  26. Генератор списка с условием if
  27. Объединение словарей в Python
  28. Метод rmatmul для пользовательских матриц
  29. Инициализация объекта
  30. Магические методы в Python
  31. Работа с исключениями в Python
  32. Копирование объектов в Python
  33. Вложенные циклы в Python
  34. Непрерывная проверка в Python
  35. Проблемы с dict в Python
  36. Нахождение максимального значения и его индекса в списке
  37. Форматирование объектов с модулем pprint
  38. Добавление элемента в список.
  39. Преобразование списка в словарь через генератор
  40. Инверсия списка/строки в Python
  41. Модуль future Python

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