Курс 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. Объединение списков в Python
  2. Замена символов в Python
  3. Локальные переменные.
  4. Поиск подстроки в строке
  5. Проверка дублей в списке.
  6. Проверка запуска скрипта или импорта модуля
  7. Вложенные генераторы в Python
  8. Экспорт внешнего файла с помощью writefile
  9. Управление виртуальными средами в Python
  10. Оператор assert в Python
  11. Defaultdict в Python
  12. Работа с файлами и директориями в Python.
  13. Подписка на SelectelNews в Twitter
  14. Улучшенные подсказки для импорта в Python 3.12
  15. Преобразование символов в нижний регистр
  16. Поиск простых чисел
  17. Объединение множеств в Python
  18. Использование type hints
  19. Работа с YAML в Python
  20. Генераторы в Python
  21. Подсчет элементов с помощью Counter из collections
  22. Глобальные переменные в Python
  23. Модуль future Python
  24. Установка и загрузка Instaloader
  25. Списки в Python
  26. Возврат нескольких значений
  27. Операторы присваивания в Python
  28. Метод splitlines() для разделения строк
  29. Базовые объекты Python
  30. Основные функции и модули Python
  31. Метод pos в Python
  32. Работа с исключениями в Python
  33. Определение объема памяти объекта
  34. Декораторы классов
  35. Применение функции map() с лямбда-функциями
  36. Удаление дубликатов в pandas
  37. Работа с модулем bisect
  38. Оператор распаковки в Python
  39. Проверка версии Python
  40. Проверка индексов коллекции
  41. Проверка типов с использованием isinstance
  42. Работа с контекст-менеджером «with»
  43. Изменяемые и неизменяемые объекты
  44. Работа с аргументами командной строки в Python
  45. Оптимизация памяти с slots
  46. Измерение времени выполнения кода
  47. Проблема сравнения словарей

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