Курс 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. Декоратор Ajax required
  2. Избегание циклических зависимостей классов в Python
  3. Генератор списка с условием if
  4. Пустой оператор pass в Python
  5. Переопределение метода __and__
  6. Частичное совпадение ввода
  7. Работа с deque из collections
  8. Инверсия списка и строки
  9. Вложенные функции в Python
  10. Создание и инициализация объектов
  11. Определение наиболее частого элемента с помощью collections.Counter
  12. Атрибуты класса и экземпляра в Python
  13. Освобождение памяти в Python
  14. Генераторы списков
  15. Аннотации типов в Python
  16. Конкатенация списков в Python
  17. Глобальные переменные в Python
  18. Класс UserDict: дополнительная функциональность
  19. Работа со строками в Python.
  20. Проблемы с dict в Python
  21. Создание именованных кортежей в Python
  22. Метод join() для объединения элементов в строку.
  23. Метод __iand__ для пользовательских классов
  24. Конвертация изображений в PDF
  25. Применение промокода в Много лосося
  26. Работа с аргументами командной строки
  27. Преобразование PowerPoint в PDF.
  28. Функция product() в Python
  29. Итераторы в Python
  30. Определение объема памяти объекта
  31. Метод remove() для удаления элемента из списка
  32. Проверка на палиндром
  33. Настройка шрифта и цвета в Tkinter
  34. Хранение переменных в Python.
  35. Метод __ixor__ для побитового исключающего ИЛИ
  36. Игра «Угадывание чисел»
  37. Настройка логгера Logzero
  38. Python и Юникод: работа с цифрами
  39. Регистрация на хакатоне
  40. Методы HTTP запросов в Flask
  41. Карта бомбоубежищ в Москве и Питере
  42. split() — разделение строки
  43. Преобразование в float
  44. Объединение списков в Python
  45. Объединение списков в Python

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