Курс 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. Работа с дробями в Python
  2. Создание задания в Cron
  3. Преобразование range в итератор
  4. Лямбда-функции в Python
  5. Функциональное программирование.
  6. Python Менеджер контекста
  7. Генераторы списков в Python
  8. Особенности множеств в Python
  9. Именованные аргументы в Python
  10. Функции map, filter, reduce
  11. Метод join() для объединения строк
  12. Генерация случайных чисел Python
  13. Экспорт данных в файл.
  14. Закрытие файла в Python
  15. Проверка на истинность объектов в Python
  16. Метод bool() в Python
  17. Импорт и использование модулей в Python
  18. Метод rsub для пользовательских чисел
  19. Работа с множествами в Python
  20. Замена символов в строке
  21. Модуль sys: основы
  22. Конкатенация строк в Python
  23. Манипуляция формой массива в Numpy
  24. Работа с JSON в Python
  25. Обмен данными с asyncio.Queue
  26. Python: динамическая типизация и проверка типов
  27. Python groupby() из itertools: работа с повторяющимися элементами
  28. Символ подчеркивания в Python
  29. Метод сравнения объектов в Python
  30. Форматирование строк в Python
  31. Вызов функций по строке в Python.
  32. Компиляция регулярных выражений
  33. Разделение строки на пары ключ-значение.
  34. Операторы увеличения и уменьшения переменной
  35. Глобальные переменные в Python
  36. Профилирование с Pandas
  37. Печать комбинаций в Python с Itertools
  38. Атрибуты объекта в Python
  39. Отделение звука от видео
  40. Функции с необязательными аргументами
  41. Разбиение текста в Python
  42. Методы list в Python
  43. Работа с CSV в Python
  44. Списковое включение в Python
  45. Пропуск начальных строк с помощью dropwhile()
  46. JMESPath в Python

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