Курс 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. Модуль inspect
  3. Просмотр атрибутов и методов класса
  4. Библиотека Chartify: руководство
  5. Мониторинг работы программы Py-spy
  6. Переменная с нижним подчеркиванием
  7. Создание тестовых данных с Faker
  8. Метод join для наборов
  9. Удаление символа из строки
  10. Преобразование символов с помощью map
  11. Определение функций с необязательными аргументами
  12. Получение текущей даты в Python
  13. Очистка входных данных
  14. Обновление данных через PUT запрос
  15. Декоратор Property в Python
  16. Измерение времени выполнения кода
  17. Курс по дообучению ChatGPT
  18. Логические значения в Python
  19. Компиляция регулярных выражений
  20. Атрибуты класса и экземпляра
  21. 9 уловок для чистого кода
  22. SciPy: широкий функционал для математических операций
  23. Codecademy в Telegram
  24. Вычисление натуральных логарифмов в NumPy
  25. Разделение строки с помощью re.split()
  26. Проверка списка: any() и all()
  27. Создание копии списка в Python
  28. Реализация метода __abs__ в Python
  29. Создание списков в Python
  30. Таймер обратного отсчета
  31. Логирование с Logzero
  32. ROT13 Шифр Цезаря в Python
  33. enumerate() в Python для работы с индексами
  34. Обновление шаблона base.html
  35. Возврат нескольких значений из функции
  36. Создание копии итератора
  37. Печать месячного календаря
  38. Создание функций высшего порядка
  39. Структуры данных в Python
  40. Декораторы с @wraps
  41. List Comprehension Tutorial
  42. Объединение итераторов
  43. Настройка нарезки списков
  44. Структуры данных в Python
  45. Передача словаря через **kwargs
  46. Работа с комплексными числами в Python
  47. Экспорт функций в Python

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