Курс Python → Декораторы в Python

Декораторы в Python позволяют добавлять дополнительное поведение к уже существующим функциям, не изменяя их основной логики. Это особенно удобно, когда нужно добавить однотипное действие к нескольким функциям или когда требуется выполнить какие-то действия до и после вызова функции.

Примером может служить декоратор, который замеряет время выполнения функции. Для создания декоратора в Python используется синтаксис с символом @. Например, декоратор, который выводит время выполнения функции, может выглядеть следующим образом:


import time

def timer(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"Время выполнения функции {func.__name__}: {end_time - start_time} секунд")
        return result
    return wrapper

@timer
def some_function():
    # код функции

В данном примере декоратор timer измеряет время выполнения функции some_function и выводит результат на экран. При вызове функции some_function сначала будет выведено время выполнения, а затем будет выполнен основной код функции.

Помимо замера времени выполнения, с помощью декораторов можно реализовать множество других дополнительных функций, таких как логирование, кеширование, валидация параметров и многое другое. Использование декораторов делает код более чистым, модульным и понятным, так как каждая функция отвечает только за свою основную задачу, а дополнительное поведение вынесено в отдельные декораторы.

Таким образом, использование декораторов в Python позволяет значительно упростить и улучшить структуру кода, делая его более гибким и поддерживаемым. Рекомендуется ознакомиться с различными примерами использования декораторов и экспериментировать с ними для более глубокого понимания их работы.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Удаление специальных символов
  2. Оператор is в Python
  3. Хранение данных с помощью dataclasses
  4. Ограничение итераций в Python
  5. Принципы программирования
  6. Метод join для наборов
  7. EMOT преобразование эмодзи в текст
  8. Обработка исключения UnboundLocalError
  9. Сравнение def и lambda функций в Python
  10. Поиск с библиотекой Google
  11. Фильтрация списка чисел
  12. Регистрация на хакатоне
  13. Экспорт данных с помощью writefile
  14. Логирование с Loguru
  15. Работа с модулем bisect
  16. Лимиты на ресурсы Python
  17. Функции в Python: создание и вызов
  18. Функция zip() — объединение последовательностей
  19. Сохранение и загрузка модели в PyTorch
  20. Выборка чисел
  21. Передача словаря через **kwargs
  22. Работа с itertools
  23. Преобразование Word в PDF с Spire.Doc
  24. Python: библиотеки и функции
  25. Обмен значений переменных в Python
  26. Модуль sys: основы
  27. TypedDict для kwargs в Python 3.12
  28. Создание пар из последовательностей
  29. Локальные переменные.
  30. Заказ карты Тинькофф Black
  31. Проверка типа данных
  32. Именование столбцов в Python с pandas
  33. Генераторы в Python
  34. Принципы LSP и ISP в Python
  35. Определение имен функций
  36. Оператор walrus в Python
  37. Сравнение строк в Python
  38. Очистка вывода в Python
  39. Переопределение оператора % для объектов
  40. Создание GUI с Tkinter: Entry
  41. Создание графиков в терминале
  42. Изменение переменной в Python: nonlocal
  43. Проблема с изменяемыми аргументами
  44. Удаление эмодзи с помощью pandas
  45. Методы split() и join() — Python строк.

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