Курс 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. Преобразование строк в числа с плавающей запятой
  2. Работа с комбинациями в Python.
  3. Обновление ключей в Python
  4. Перегрузка операторов в Python
  5. Генерация случайных чисел в Python
  6. Вычисление логарифмов в Python
  7. Переопределение метода __pow__
  8. Работа с *args и **kwargs в Python
  9. Обратное распространение ошибки
  10. Получение размера объекта с sys.getsizeof()
  11. Модуль future Python
  12. Метод get для словарей
  13. Рациональные числа в Python
  14. Протокол управления контекстом
  15. Функция eval() в Python
  16. Обработка исключений с блоком else
  17. Метод split() для разделения строк
  18. Функция product() из itertools
  19. Настройка вывода в Numpy
  20. Метод rmatmul для обратного матричного умножения
  21. Lambda-функция в Python: использование с map() и sum()
  22. Создание словарей с defaultdict()
  23. Работа с модулем random
  24. Инверсия списка и строки
  25. Проверка типа объекта в Python
  26. Работа с кортежами
  27. Python 3.12: переиспользование кавычек
  28. Передача неизвестных аргументов в Python.
  29. Метод ifloordiv для пользовательских классов
  30. Определение индекса элемента списка
  31. Удаление символов новой строки в Python.
  32. Логирование с Loguru
  33. Метод __iand__ для пользовательских классов
  34. Разработка Telegram-ботов
  35. Проверка типа данных
  36. Таймер обратного отсчета
  37. Добавление элементов в список
  38. Печать комбинаций в Python с Itertools
  39. Реверс строки в Python
  40. Отступы в Python
  41. Проверка строки на палиндром
  42. Сумма элементов списка
  43. Создание обратного итератора
  44. Поиск файлов по шаблону
  45. Сортировка с помощью key
  46. Ввод нескольких значений
  47. Сериализация и десериализация объектов

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