Курс 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"Time taken: {end_time - start_time} seconds")
        return result
    return wrapper

@timer
def some_function():
    # Код функции

В этом примере декоратор timer измеряет время выполнения функции some_function и выводит его на экран. Декоратор принимает функцию в качестве аргумента, создает внутреннюю функцию-обертку, которая заменяет вызываемую функцию и возвращает результат выполнения исходной функции.

Использование декораторов позволяет улучшить читаемость кода, избежать дублирования кода и повысить переиспользуемость функций. Они являются важной частью парадигмы программирования в Python и позволяют значительно упростить написание и поддержку кода.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Сумма элементов списка
  2. Генератор бросков кубиков
  3. Извлечение аудио из видео
  4. Вложенные функции в Python
  5. Оператор «or» в Python
  6. Инициализация объекта
  7. Тестирование функции сложения
  8. Модуль math: основные функции
  9. Работа с файлами в Python
  10. Сортировка и обратный порядок
  11. Декораторы в Python
  12. Копирование списков в Python
  13. Оптимизация памяти с slots
  14. Декоратор total_ordering для класса Point
  15. Декоратор для группы пользователей в Django
  16. Установка и использование TensorFlow
  17. Асинхронное программирование с asyncio
  18. Генераторы в Python
  19. Список импортированных модулей в Python
  20. Установка и использование библиотеки google
  21. Основные методы NumPy
  22. Извлечение новостей с помощью newspaper3k
  23. Автоматизация скриптов на AWS Lightsail.
  24. Измерение времени выполнения в Python
  25. Активация Matplotlib в Jupyter
  26. Получение текущей даты в Python
  27. Удаление элементов из списка в Python
  28. Метод gt в Python
  29. Метод split() в Python
  30. Переименование файлов в Python
  31. Зарезервированные слова в Python
  32. Приближение чисел в Python
  33. Возвращение нескольких значений через кортеж или класс
  34. Применение промокода в Много лосося
  35. inspect в Python: анализ кода
  36. Работа со списками
  37. Многострочные комментарии в Python
  38. Определение индекса элемента списка
  39. Распаковка элементов последовательности
  40. Блок else в Python
  41. Подчеркивание в REPL
  42. Частичное совпадение ввода
  43. Тернарный оператор в Python
  44. Основы работы со списками
  45. Срезы в Python
  46. Нахождение пересечения множеств
  47. Создание namedtuple из словаря

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