Курс 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. Преобразование символов с помощью map
  2. Очистка входных данных
  3. Динамическая типизация в Python
  4. Работа со строками в Python
  5. Преобразование списка в словарь через генератор
  6. Поиск самого частого элемента
  7. Удаление элементов во время итерации
  8. Работа с файлами в Python
  9. Объединение коллекций в Python
  10. Список переменных в Python
  11. Функции map, filter, reduce
  12. Удаление эмодзи с помощью pandas
  13. Форматирование строк в Python.
  14. Пустой оператор pass в Python
  15. Библиотека sh: удобные команды терминала
  16. Добавление элементов в список: append() vs extend()
  17. Генерация чисел с range()
  18. Удаление знаков препинания в Python
  19. Получение локальных переменных в Python
  20. Логирование с Logzero: ротация файла
  21. Избегайте использования goto
  22. Определение относительного пути
  23. Обработка ошибок в Python
  24. Преобразование строки в число
  25. Удаление элементов по срезу
  26. Основы работы со списками
  27. Удаление символов новой строки в Python.
  28. Установка User-Agent в Python
  29. Комментарии в Python
  30. Метод eq для сравнения объектов
  31. Установка виртуального окружения Python
  32. Метод join() с набором
  33. Структуры данных в Python
  34. Python: Фильтрация списков с помощью filter()
  35. Monkey Patching в Python
  36. Вложенные функции в Python
  37. Проверка кортежей.
  38. Работа с часовыми поясами в Python
  39. Очистка вывода в Python
  40. Инверсия списка и строки
  41. Преобразование списков в словарь
  42. Вычисление разности множеств в Python
  43. Инициализация объекта
  44. Игра «Камень, ножницы, бумага» — Python
  45. Проверка окончания строки с помощью str.endswith()
  46. Поиск уникальных элементов строкой в Python
  47. Оболочка Python
  48. Использование двоеточия в Python

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