Курс 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. Сравнение def и lambda-функций
  2. Модуль future Python
  3. Декоратор total_ordering для сравнения объектов
  4. Работа с NumPy
  5. Генерация случайных чисел Python
  6. Лямбда-функции в Python
  7. Конвертация изображений в PDF
  8. Создание матрицы в Python
  9. Обновление и получение данных в SQLite
  10. Метод join() для объединения элементов строки
  11. ChainMap.new_child() — добавление нового словаря
  12. Изменение объектов в Python
  13. Работа со строками в Python
  14. Структурирование данных с Pydantic
  15. Метод __complex__ в Python
  16. Декораторы в Python
  17. Курс Data Scientist в медицине
  18. Модуль math: основные функции
  19. Модуль antigravity: генерация координат
  20. Запрос пароля с помощью getpass
  21. Работа с датой и временем в Python
  22. Кортеж в Python: создание, доступ, изменение
  23. Управление ресурсами с контекстными менеджерами
  24. Генерация строк с .join()
  25. Структура данных словарь в Python
  26. Логирование в Python
  27. Добавление элементов в список: append() vs extend()
  28. Список переменных в Python
  29. Проектирование Singleton с метаклассом
  30. Метод __imod__ для Python
  31. Работа с дробями в Python
  32. Создание вложенных циклов for
  33. Конструктор в Python
  34. Обход элементов в Python
  35. Создание пар из последовательностей
  36. Оптимизация методов в Python 3.7
  37. Работа с изображениями PIL
  38. Копирование файлов с shutil()
  39. Бинарный поиск

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