Курс 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. Глобальные переменные в Python
  4. Генерация случайных чисел в Python
  5. Сортировка слиянием
  6. Numpy: использование Ellipsis
  7. Игра «Угадывание чисел»
  8. Возврат нескольких значений из функции
  9. Замена символов в строке
  10. Вложенные функции в Python
  11. Генератор бросков кубиков
  12. Метод __irshift__ для побитового сдвига вправо
  13. Импорт классов из другого файла
  14. Округление чисел с помощью round
  15. Оператор Walrus в Python
  16. Объединение коллекций в Python
  17. Срезы в Numpy
  18. Расчет времени выполнения
  19. Построение графиков в терминале с bashplotlib
  20. Преобразование чисел в слова
  21. Повторение элементов в Python
  22. Конвертация коллекций в Python
  23. Базовые объекты Python
  24. Метод __iand__ для пользовательских классов
  25. Перезагрузка оператора в Python
  26. Область видимости переменных в Python
  27. Повторение элементов в Python
  28. Сортировка с помощью key
  29. Установка максимального количества цифр
  30. Оператор == в Python
  31. Расширение операции побитового «и» в Python
  32. Сравнение неупорядоченных списков
  33. Использование super() в Python
  34. Классы данных в Python
  35. Регистрация на хакатоне
  36. Функции all() и any() в Python
  37. Применение функции к списку
  38. UserString в Python
  39. Список переменных с %who
  40. Ввод нескольких значений
  41. Работа с процессами в Python
  42. Отладчик pdb: начало работы
  43. Оператор (*) в Python
  44. Генераторы в Python
  45. Создание новой даты в Python
  46. Переворот списка в Python
  47. Создание уникального проекта

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