Курс 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. Кортеж в Python: создание, доступ, изменение
  2. Изменение переменной в Python: nonlocal
  3. Создание .exe файла с pyinstaller
  4. Освобождение памяти в Python
  5. Работа с прокси в Python
  6. Очистка данных с Pandas
  7. Асинхронное выполнение задач в Python
  8. Работа с переменными в Python
  9. Каналы Senior: Python, Java, Frontend, SQL, C++
  10. Вывод с переменной через запятую
  11. Метод ipow для возведения в степень
  12. Удаление ключей из словаря
  13. Генераторы данных
  14. Python Translator: создание локальных переводчиков
  15. Измерение времени выполнения
  16. Метод get для словарей
  17. Установка Home Assistant
  18. Оператор морж в Python 3.8
  19. Игра Виселица на Python
  20. f-строки в формате строк
  21. Однострочники Python
  22. Метод join() для объединения элементов в строку.
  23. Участие в LP стейкинге Waves
  24. Методы работы со списками
  25. Доступ к локальным переменным
  26. Объединение списков в Python
  27. Метод difference_update() — разность множеств
  28. Искажение имен в Python
  29. Преобразование списка в словарь через генератор
  30. Применение функции map() с лямбда-функциями
  31. Измерение времени выполнения с помощью time
  32. Настройка вывода в Numpy
  33. Преобразование Word в PDF с Spire.Doc
  34. Преобразование списков в словарь
  35. Изучение объектов с помощью dir()
  36. Работа с библиотекой xkcd
  37. Измерение времени выполнения кода
  38. Отношения подклассов в Python
  39. Отладка в командной строке
  40. Возведение в квадрат с помощью itertools
  41. Рациональные числа в Python
  42. Поиск элементов BeautifulSoup
  43. Тернарный оператор в Python
  44. Игра «Виселица» на Python

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