Курс 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. Magic Commands — улучшение работы с Python
  2. Пустой оператор pass в Python
  3. Метод __getitem__ в Python
  4. Шаблоны Flask: условия и циклы
  5. Работа с комплексными числами
  6. Создание списка через итерацию
  7. Операторы увеличения и уменьшения переменной
  8. Создание генераторов
  9. Печать календаря в Python
  10. Декоратор для группы пользователей в Django
  11. IPython и Jupyter Notebook: руководство
  12. Декораторы в Python
  13. Разрешение имен в Python
  14. Работа с модулем os в Python
  15. Фильтрация списков с itertools
  16. Создание спинбокса в tkinter
  17. Удаление falsy-значений из списка с помощью filter
  18. Метод join() для объединения элементов строки
  19. Применение функций в Python
  20. Названия столбцов в Python таблицах
  21. Обработка исключений
  22. Проверка индексов коллекции
  23. Метод __ilshift__ для битового сдвига влево
  24. Методы Python для работы с данными
  25. Обновление и получение данных в SQLite
  26. Генераторы в Python
  27. Основные методы NumPy
  28. Форматирование строк с помощью f-строк
  29. Комментарии в Python
  30. Оператор continue в Python
  31. GitHub в Telegram: подписка на уведомления
  32. Возврат значений из генератора
  33. Конкатенация строк с join() в Python
  34. Область видимости переменных
  35. Метод splitlines() для разделения строк
  36. Работа с кортежами в Python
  37. Работа с дробями в Python
  38. Импорт в Python: список all
  39. Разработка Telegram-ботов
  40. Поиск уникальных и повторяющихся элементов
  41. Конкатенация списков в Python
  42. Участие в LP стейкинге Waves
  43. Оптимизация параметров в Python
  44. Переворот строки

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