Курс 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. Обработка исключений в Python
  3. Распаковка элементов последовательности
  4. Метод clear для коллекций
  5. Форматирование вывода списков
  6. Дизассемблирование Python кода
  7. Открытие и редактирование скриптов Python
  8. Преобразование числа в список цифр
  9. Работа с контекстными переменными
  10. Создание новой даты в Python
  11. Оптимизация сравнения в Python
  12. Переопределение метода sub
  13. Область видимости переменных
  14. Разделение списка на гнппы
  15. List Comprehension Tutorial
  16. Объединение словарей в Python
  17. Получение срезов итераторов
  18. Фильтрация списков с itertools
  19. Проекты на Python
  20. Блок else в Python
  21. Метод hash в Python
  22. Импорт модулей и пакетов в Python
  23. Подсчет частоты элементов с Counter
  24. Декораторы в Python
  25. Изучение объектов с помощью dir()
  26. Декоратор total_ordering для класса Point
  27. Курс Data Scientist в медицине
  28. Работа с функцией next() в Python
  29. Преобразование документов в PDF с помощью Spire.Office
  30. Функции any() и all() в Python
  31. Преобразование чисел в слова
  32. Lambda-функция в Python: использование с map() и sum()
  33. Подписка на каналы разработчиков
  34. Очистка входных данных
  35. Подсчет элементов в Python
  36. Извлечение данных из JSON
  37. Поиск наиболее частого элемента
  38. Сортировка элементов в Python
  39. Сериализация и десериализация объектов
  40. Шаблоны Flask: условия и циклы
  41. Bootle — простой веб-фреймворк
  42. Создание таблиц в Python с PrettyTable
  43. Расчет времени выполнения
  44. Проблемы с dict в Python
  45. Переопределение метода len
  46. Циклы for в Python

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