Курс 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. Сортировка и обратный порядок
  4. Оператор break в Python
  5. Модуль inspect: получение информации о объектах
  6. JSON-esque в Python
  7. Сортировка в Python
  8. Python Translator: создание локальных переводчиков
  9. Работа со списками
  10. Удаление символа из строки
  11. Определение объема памяти объекта
  12. Удаление ключей из словаря
  13. Копирование словарей и списков в Python
  14. Оператор continue в Python
  15. Проверка вхождения подстроки
  16. Преобразование чисел в восьмеричную строку
  17. Основные функции и модули Python
  18. Метод lt для сортировки объектов
  19. Работа с модулем random
  20. Переопределение метода
  21. Numpy: разбиение массивов
  22. Работа с аргументами командной строки в Python
  23. Просмотр внешнего файла в Python
  24. Оптимизация параметров в Python
  25. Многострочные строки в Python
  26. Нахождение пересечения множеств
  27. Генераторы данных
  28. Работа со временем в Python
  29. Встраивание HTML в Jupyter Notebook
  30. Подробная информация о %pinfo
  31. Получение срезов итераторов
  32. Python Метод sleep() времени
  33. Получение текущей даты в Python
  34. Чтение и запись TOML-конфигов
  35. Сортировка данных в Python
  36. Проверка наличия элемента в списке
  37. Antigravity модуль
  38. Работа со случайными элементами
  39. Генератор данных в Keras
  40. Инициализация структур данных
  41. Операторы += в Python
  42. Мониторинг работы программы Py-spy
  43. Извлечение аудио из видео
  44. Метод join() для объединения строк
  45. Функция zip() в Python
  46. Управление контекстом выполнения

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