Курс 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. Решатель судоку на Python с pygame
  2. Изменение объектов в Python
  3. Передача словаря через **kwargs
  4. Сортировка HTML-элементов
  5. Сравнение def и lambda-функций
  6. Работа с timedelta в Python
  7. Создание файла с проверкой ошибки
  8. Работа с zip-архивами в Python
  9. Проверка индексов коллекции
  10. Поиск подстроки в строке
  11. Иерархия классов в Python
  12. Python reversed() функция
  13. Функция с *args.
  14. Генерация строк с .join()
  15. Обновление и получение данных в SQLite
  16. Применение функции к списку
  17. Определение объема памяти объекта
  18. Работа с изменяемыми коллекциями
  19. Модуль subprocess: запуск внешних команд
  20. Метод __iand__ для пользовательских классов
  21. Метод rpow в Python
  22. Генераторы в Python
  23. Удаление элементов из списка
  24. Обработка аргументов Python
  25. Python Аргументы по умолчанию
  26. Логические значения в Python
  27. Форматирование чисел в Python
  28. Протокол управления контекстом
  29. PrettyTable: создание таблицы
  30. Операции с матрицами в Python
  31. Избегайте изменяемых аргументов
  32. Повторение элементов в Python
  33. Оператор in и not in в Python
  34. Копирование файлов с shutil()
  35. Разность множеств
  36. Метод __ixor__ для побитового исключающего ИЛИ
  37. Преобразование текста в речь с Python
  38. Объединение словарей в Python
  39. Многострочные комментарии в Python
  40. Таймер обратного отсчета
  41. Расширение операции побитового «и» в Python
  42. Список переменных в Python
  43. Методы Python для работы с данными
  44. Логирование в Python

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