Курс 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. Метод init в Python
  2. Возвращение нескольких значений через кортеж или класс
  3. Применение функции map() с лямбда-функциями
  4. Объединение словарей в Python
  5. Проверка памяти объекта
  6. Подсчет количества элементов в списке
  7. Работа с argparse
  8. Непрерывная проверка в Python
  9. Получение текущей директории
  10. Быстрый поиск кода
  11. Сложные типы данных в Python
  12. Обмен значений переменных в Python
  13. Уникальность ключей в словаре
  14. Создание функций с произвольным количеством аргументов
  15. Работа со временем в Python
  16. Метод __irshift__ для Python
  17. Переворот списка в Python
  18. Изменение переменной в Python: nonlocal
  19. Работа с путями в Python
  20. Метод remove() для удаления элемента из списка
  21. Округление дробей в Python
  22. Руководство по библиотеке pydantic
  23. Работа с кортежами в Python
  24. Создание словарей с defaultdict
  25. Особенности множеств в Python
  26. Оператор объединения словарей
  27. Работа с срезами в Numpy
  28. Многострочные строки в Python
  29. Удаление элементов по срезу
  30. Блок else в обработке исключений
  31. Создание файла с проверкой ошибки
  32. Оператор обр. импликации
  33. Проверка наличия элемента в списке
  34. Разделение строки с помощью split()
  35. Преобразование текста в речь с Python
  36. Хранение данных с помощью dataclasses
  37. Подсказки при вводе данных в Python
  38. Методы classmethod и staticmethod
  39. Назначение максимального и минимального значения переменной в Python.
  40. Вложенные циклы в Python
  41. Комплексные числа в Python
  42. Оператор assert в Python
  43. Python Метод sleep() из time
  44. Генераторы данных
  45. Сортировка данных в Python
  46. Нахождение самого длинного слова в списке с помощью max
  47. Операция += для списков
  48. Оптимизация параметров в Python

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