Курс 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. Оформление текста в консоли с TermColor
  2. Оператор * в Python
  3. Импорт в Python: список all
  4. Открытие и запись файлов
  5. Установка User-Agent в Python
  6. Python: отличительная особенность — отступы
  7. Создание вложенных циклов for
  8. Проверка индексов коллекции
  9. Манипуляция формой массива в Numpy
  10. Отправка HTTP-запросов в Python
  11. Модуль sys: основы
  12. Генераторы в Python
  13. Использование defaultdict в Python
  14. Модуль antigravity: генерация координат
  15. Фильтрация последовательности
  16. Отделение звука от видео
  17. Счетчик в Python: most_common()
  18. Сравнение строк в Python
  19. Хранение данных
  20. Таймер обратного отсчета
  21. Основные методы NumPy
  22. Работа со словарями с defaultdict из collections
  23. Отрицательные индексы списков
  24. Преобразование регистра строк
  25. discard() — удаление элемента из множества
  26. TypedDict для kwargs в Python 3.12
  27. Работа с функцией next() в Python
  28. Контроль точности вывода чисел
  29. Обработка исключений в Python 3
  30. Функция sleep() в Python
  31. Создание класса в Python
  32. Многострочные строки в Python
  33. Итераторы с потерямиZIP
  34. Оптимизация сравнения в Python
  35. Сортировка в Python
  36. Создание GUI с Tkinter: Entry
  37. Методы работы со списками
  38. Блок try-except-else
  39. Создание и использование ChainMap
  40. Функция eval() в Python
  41. Нан-рефлексивность в Python
  42. Методы Python для работы с данными
  43. Объединение словарей в Python
  44. Создание тестовых данных с Faker

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