Курс 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. Инверсия списка и строки
  3. Многострочные строки в Python
  4. Работа с collections в Python
  5. Работа со списками
  6. Основные операции с библиотекой Numpy
  7. Поиск с помощью регулярных выражений
  8. Кортеж в Python: создание и использование
  9. Работа с CSV файлами в Python
  10. Форматирование строк в Python
  11. Создание словаря с значением по умолчанию
  12. Преобразование списка в словарь через генератор
  13. Конвертация изображений в PDF
  14. Изменение элемента списка
  15. Создание словаря и множества
  16. Работа с изображениями Pillow
  17. Комментарии в Python
  18. Flask: создание веб-приложений
  19. Howdoi — получение ответов из терминала
  20. Основы Python
  21. Измерение времени выполнения кода
  22. Работа с файлами в Python
  23. Особенности ключей словаря в Python
  24. Создание обратного итератора
  25. Поиск частых элементов в списке
  26. Просмотр внешних файлов в %pycat
  27. Участие в LP стейкинге Waves
  28. Тестирование времени с Freezegun
  29. Транспонирование 2D-массива с помощью zip
  30. Отправка HTTP-запросов с User-Agent
  31. Логирование с Logzero
  32. Аннотации типов в Python
  33. Получение обратного списка чисел
  34. Экспорт внешнего файла с помощью writefile
  35. Автоматизация скриптов на AWS Lightsail.
  36. Список переменных с %who
  37. Работа с кортежами в Python
  38. Сравнение строк в Python
  39. Иерархия классов в Python
  40. Метод __ilshift__ для битового сдвига влево
  41. Генератор данных в Keras
  42. Flask — веб-фреймворк Python
  43. Метод append() для списка
  44. Numpy: объединение массивов
  45. Управление асинхронными задачами с помощью Semaphore
  46. Создание вложенного генератора
  47. Принцип одной функции
  48. Преобразование чисел в восьмеричную строку

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