Курс 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. Многострочные строки в Python
  2. UserList в Python: Описание и примеры использования
  3. Обработка ошибок в Python
  4. Преобразование списков в словарь
  5. Мониторинг работы программы Py-spy
  6. Подсчет частотности элементов в Python
  7. Объединение словарей в Python
  8. Замена символов в строке
  9. Создание пар из последовательностей
  10. Открытие, чтение и закрытие файла
  11. UserString в Python
  12. Закрытие файла в Python
  13. Расширение информации об ошибке в Python
  14. Проверка класса объекта
  15. Удаление ключа из словаря в Python
  16. Динамическая типизация в Python
  17. Замена текста с помощью sub
  18. Отправка HTTP-запросов с User-Agent
  19. Хранение переменных в словаре.
  20. Роль ключевого слова self
  21. Подсчет элементов в Python
  22. Таймер обратного отсчета
  23. Управление контекстом с помощью декоратора contextmanager
  24. Возведение в квадрат с помощью itertools
  25. Обработка ошибок в JSON данных
  26. Переопределение оператора % для объектов
  27. Доступ к локальным переменным
  28. Копирование файлов с shutil()
  29. Метод eq для сравнения объектов
  30. Счетчик ссылок в Python
  31. Строки в Python: апострофы и кавычки
  32. Прокачанный трейсинг ошибок
  33. Python и Монти Пайтон
  34. Объединение списков в Python.
  35. Операции с массивами в NumPy
  36. Работа с байтовыми строками в Python
  37. Функция reduce() из модуля functools
  38. Генераторные функции в Python
  39. Функции min(), max(), sum()
  40. Изменяемые и неизменяемые объекты
  41. Обработка ошибки IndexError
  42. Работа с NumPy.linalg
  43. Расчет времени выполнения
  44. Объединение словарей в Python
  45. Разделение строки с помощью re.split()
  46. Аргументы *args и **kwargs

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