Курс 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. Оператор * в Python
  3. Цикл for в Python
  4. Проверка ввода с помощью isdigit
  5. Декоратор проверки активности
  6. Карта бомбоубежищ в Москве и Питере
  7. Запуск файлового сервера
  8. Ограничение итераций в Python
  9. Переопределение унарных операторов
  10. Метод join() для объединения элементов строки
  11. Генераторы в Python
  12. Работа со строками
  13. Вывод сложных структур данных с помощью pprint
  14. Функции в Python
  15. Объединение словарей в Python
  16. Декораторы классов
  17. Аргументы *args и **kwargs
  18. Безопасные SQL-запросы в Python 3.11
  19. Порядок и длина множеств в Python
  20. Приоритет операций в Python
  21. Функции высшего порядка в Python
  22. Преобразование Excel в PDF с Spire.XLS
  23. Переопределение метода len
  24. Подсказки типов в Python
  25. Фильтрация списка от «ложных» значений
  26. Обработка данных в Python
  27. Запуск Python из интерпретатора
  28. Метод init в Python
  29. Использование двоеточия в Python
  30. Парсинг статей с Newspaper3k
  31. Измерение времени выполнения кода
  32. Определение размера папок в Python
  33. Проверка элемента в множестве.
  34. Реверс строки в Python
  35. Склеивание строк через метод join()
  36. Создание новых функций через partial
  37. Установка и использование модуля «howdoi»
  38. Пространство имен в Python
  39. Каналы Senior: Python, Java, Frontend, SQL, C++
  40. Конкатенация строк в Python
  41. Списковое включение в Python
  42. Проверка переменных окружения в Python
  43. Создание коллекций из генератора
  44. JSON-esque в Python
  45. Измерение времени выполнения кода
  46. Удаление символа из строки

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