Курс 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. Создание уникального проекта
  2. Преобразование списков в словарь
  3. Генераторы списков в Python
  4. Метод __ixor__ для побитового исключающего ИЛИ
  5. Работа с модулем random
  6. Конвертация текстовых чисел с помощью Numerizer
  7. Подсказки при вводе данных в Python
  8. Поиск всех индексов подстроки
  9. Обрезка изображения с Pillow
  10. Отправка POST запроса на сервер.
  11. Генератор списка в Python
  12. Модуль Antigravity в Python 3
  13. Многоточие в Python
  14. Изменение списка срезами
  15. Функции с необязательными аргументами
  16. Форматирование строк в Python
  17. Установка и использование howdoi
  18. Форматирование строк в Python
  19. Документирование функций в Python
  20. Оператор in в Python
  21. Вычисление разности множеств в Python
  22. Фильтрация последовательности
  23. Повторение элементов в Python
  24. Изменение списка срезом
  25. Работа с кортежами в Python
  26. Библиотека sh: использование команд bash в Python
  27. Метод split() в Python
  28. Форматирование чисел в Python
  29. Циклы в Python
  30. Работа с CSV файлами
  31. Подсчет элементов в списке с Counter
  32. Извлечение аудио из видео
  33. Генерация случайных чисел в Python
  34. Принципы программирования
  35. Измерение времени выполнения кода
  36. Работа с YAML в Python
  37. Работа с deque в Python
  38. Проблема с изменяемыми аргументами
  39. Игра «Виселица» на Python
  40. Оператор continue в Python
  41. Списковое включение в Python
  42. Разница между датами
  43. Работа с GitHub в Telegram
  44. Измерение времени выполнения
  45. Обработка ошибок в JSON данных
  46. Оптимизация памяти с __slots__

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