Курс 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. Цикл for в Python
  4. Метод rxor для операции побитового исключающего «или»
  5. Тип CodeType в Python.
  6. Ключевое слово global в Python
  7. Метод radd для пользовательских чисел
  8. Пересечение списков с использованием множеств
  9. Поиск индекса элемента в списке
  10. Enum в Python: создание и использование перечислений
  11. Работа с модулем bisect
  12. Переменные в Python: сокращение гласных
  13. Python Enum Weekday Usage
  14. Получение списка кортежей из словаря
  15. Закрытие файла в Python
  16. Метод append() для списка
  17. Создание списка через итерацию
  18. Создание директории в Python
  19. Очистка строки в Python
  20. Вычисление разности множеств в Python
  21. Избегание циклических зависимостей классов в Python
  22. Быстрый поиск кода
  23. Склеивание строк через метод join()
  24. Переопределение метода __pow__
  25. Сортировка элементов с OrderedDict
  26. EMOT преобразование эмодзи в текст
  27. Создание и использование ChainMap
  28. Ускоренный импорт библиотек
  29. Модуль xkcd: добавление юмора в Python
  30. Python 3.12: Псевдонимы типов
  31. Запуск Python из интерпретатора
  32. Функции map() и reduce() в Python
  33. Поиск файлов по шаблону
  34. Фильтрация списков с itertools
  35. Обмен данными с asyncio.Queue
  36. Хеширование паролей с солью
  37. Принципы программирования
  38. Удаление и повторная вставка ключа в OrderedDict
  39. Подсказки типов в Python
  40. Оператор «not» в Python
  41. Модуль Operator в Python
  42. Конкатенация строк с join() в Python
  43. Создание треугольника Паскаля
  44. Создание итерируемых объектов
  45. Функция product() в Python
  46. Разделение списка на гнппы
  47. Новшества Flask 2.0
  48. Разделение строки на пары ключ-значение.

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