Курс 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. Проверка вхождения подстроки
  3. Метод join() для объединения элементов строки
  4. Вычисление логарифмов в Python
  5. Метод rxor для операции побитового исключающего «или»
  6. Изменяемые и неизменяемые объекты
  7. Определение функций с необязательными аргументами
  8. Экспорт данных с помощью writefile
  9. Подписка на каналы разработчиков
  10. Удаление URL-адресов в Python
  11. Оптимизация памяти в Python
  12. Подписка на @SelectelNews
  13. Python groupby() из itertools: работа с повторяющимися элементами
  14. Работа с библиотекой xkcd
  15. Создание тестовых данных с Faker
  16. Доступ к локальным переменным
  17. Методы обработки строк в Python
  18. Генерация UUID в Python
  19. Аннотации типов в Python
  20. Генераторы списков в Python
  21. Python: динамическая типизация и проверка типов
  22. Python: Splat-оператор и splatty-splat
  23. Настройка Cron
  24. Поиск уникальных элементов строкой в Python
  25. Создание спинбокса в tkinter
  26. Непрерывная проверка в Python
  27. Поиск индекса элемента
  28. Нарезка списков в Python
  29. Сортировка в Python
  30. Использование *args
  31. Аннотации типов в Python
  32. Namedtuple в Python
  33. Ключевое слово global в Python
  34. Преобразование чисел в восьмеричную строку
  35. Сортировка с помощью key
  36. Хранение переменных в Python.
  37. Метод enumerate() в Python
  38. Переопределение метода __rshift__
  39. Преобразование типов данных в set comprehension
  40. Класс UserDict: дополнительная функциональность
  41. Numpy: объединение массивов
  42. Применение функции к списку
  43. Обновление и получение данных в SQLite
  44. Обработка исключений в Python 3
  45. Склеивание строк через метод join()
  46. Блок else в циклах.
  47. Метод join() для объединения элементов строки

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