Курс 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. Создание веб-приложения с Flask
  2. Извлечение аудио из видео
  3. Работа с SQLite в Python
  4. Создание namedtuple из словаря
  5. История Python
  6. Проверка строки на палиндром
  7. Метод __imod__ для Python
  8. Избегание изменяемых аргументов
  9. Непрерывная проверка в Python
  10. Функция reduce() из модуля functools
  11. Красивый вывод списка
  12. Имена объектов в Python
  13. Лямбда-функции в Python
  14. Создание детектора плагиата
  15. Запуск Python из интерпретатора
  16. Изменение элемента списка
  17. Вызов внешних программ в Python с помощью sh
  18. Получение текущего времени в Python
  19. Удаление ключа из словаря в Python
  20. Python: Фильтрация списков с помощью filter()
  21. Объединение, распаковка и деструктуризация
  22. Форматирование строк в Python
  23. Руководство по Pymorphy2
  24. Изменение логики работы с временем
  25. Декораторы в Python
  26. Обработка ошибок ввода данных
  27. Метод rpow в Python
  28. ChainMap.new_child() — добавление нового словаря
  29. Сортировка в Python
  30. Обучение модели с указанием эпох
  31. Функция zip() в Python
  32. Аннотации типов в Python
  33. Основы Python
  34. Замена подстроки
  35. Создание словарей с defaultdict
  36. Работа с collections.Counter
  37. Оптимизация поиска в словарях
  38. Декоратор защиты анонимных пользователей
  39. Нахождение отличий в списках
  40. Выключение компьютера с помощью Python
  41. Декораторы в Python
  42. Работа с процессами в Python
  43. Работа с базами данных SQLite
  44. Pillow: работа с изображениями
  45. Определение наиболее частого элемента с помощью collections.Counter
  46. Библиотека itertools: объединение списков
  47. Модуль xkcd: добавление юмора в Python
  48. Функция с *args.

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