Курс 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. Установка random seed в Python
  3. Сериализация данных в JSON с помощью json.dumps
  4. Форматирование строк в Python
  5. Повторение элементов списков
  6. Экранирование символов в Python
  7. Вывод букв строки в Python
  8. Принципы программирования
  9. Добавление вложенных списков
  10. Стать Python-разработчиком
  11. Поиск всех индексов подстроки
  12. Создание объекта timedelta
  13. Компиляция регулярных выражений
  14. Освобождение памяти в Python
  15. Оператор @ для умножения матриц
  16. Декораторы в Python
  17. Установка и использование Logzero
  18. Отправка POST-запроса в REST API
  19. Явный импорт в Python
  20. Создание пользовательской коллекции в Python
  21. Работа с файлами в Python
  22. Изменение регистра данных
  23. Исправление ошибки NameError
  24. Ускорение кода с помощью векторизации
  25. Перевод текста с Python Translator
  26. Управление ресурсами в Python
  27. Преобразование чисел в Python
  28. Метод title() в Python
  29. Работа с timedelta в Python
  30. Структура строк в Python
  31. Операции с комплексными числами
  32. Библиотека Chartify: руководство
  33. Отношения подклассов в Python
  34. Определение наиболее частого элемента с помощью collections.Counter
  35. Combobox в Tkinter
  36. Возврат нескольких значений
  37. Объявление переменных в Python
  38. Метод bool() в Python
  39. Перевернуть список в Python
  40. Цепные операции в Python
  41. Перемешивание списка с shuffle()
  42. TypedDict для kwargs в Python 3.12
  43. Подсчет элементов в Python
  44. Потоковый ввод в Python
  45. Работа с SQLite в Python
  46. Удаление и повторная вставка ключа в OrderedDict
  47. Экспорт функций в Python

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