Python декораторы: что это такое и как использовать

Декораторы в Python: что это такое?

Декораторы в Python - это специальные функции, которые позволяют модифицировать поведение других функций. Они позволяют обернуть (декорировать) функцию вокруг другой функции, чтобы добавить или изменить ее функциональность.

Декораторы обычно используются для добавления дополнительного кода до и после исполнения функции, без необходимости изменять саму функцию. Они являются мощным инструментом для расширения функциональности функций без необходимости изменения их исходного кода.

Пример декоратора:


def decorator_function(original_function):
    def wrapper_function(*args, **kwargs):
        print(f"Выполняется функция {original_function.__name__}")
        result = original_function(*args, **kwargs)
        print(f"Функция {original_function.__name__} завершена")
        return result
    return wrapper_function

@decorator_function
def greet():
    print("Привет, мир!")

greet()

Когда мы вызываем функцию greet(), она обернута декоратором decorator_function, который выполняет дополнительный код до и после исполнения функции. В данном примере, декоратор печатает сообщение "Выполняется функция greet" перед выполнением функции и сообщение "Функция greet завершена" после выполнения функции.

Декораторы в Python очень полезны при работе с аспектами программирования, такими как логирование, временная отметка или обработка исключений. Они позволяют повторно использовать код и упрощают его понимание и сопровождение.

Детальный ответ

Декораторы Python: что такое?

Декораторы Python - это мощный инструмент, который позволяет изменять поведение функций или классов, не изменяя их исходный код. Они представляют собой функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию. Декораторы используются для расширения функциональности существующих объектов в Python.

В этой статье мы рассмотрим, что такое декораторы Python и как они работают, а также предоставим некоторые примеры кода для лучшего понимания.

Как работают декораторы

Когда вы применяете декоратор к функции или классу, декоратор фактически оборачивает исходный объект в новый объект. Это позволяет вам добавлять новую функциональность к исходному объекту без необходимости изменять его исходный код напрямую. Декораторы также позволяют повторно использовать функциональность, так как они могут быть применены к разным объектам.

Примеры декораторов в Python

Давайте рассмотрим несколько примеров декораторов в Python для лучшего понимания.

Пример 1: Декоратор замера времени выполнения функции


import time

def measure_time(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

@measure_time
def my_function():
    # Код функции
    pass

my_function()

В этом примере мы создаем декоратор measure_time, который измеряет время выполнения функции, к которой он применяется. Мы используем модуль time для измерения времени до и после выполнения функции. Декоратор оборачивает исходную функцию в функцию-обертку wrapper, которая измеряет и выводит время выполнения.

Пример 2: Декоратор логирования


def logger(func):
    def wrapper(*args, **kwargs):
        print(f"Вызвана функция {func.__name__}")
        result = func(*args, **kwargs)
        print(f"Функция {func.__name__} выполнена")
        return result
    return wrapper

@logger
def my_function():
    # Код функции
    pass

my_function()

В этом примере мы создаем декоратор logger, который выводит сообщение перед и после выполнения функции. Декоратор оборачивает исходную функцию в функцию-обертку wrapper, которая выводит сообщения и затем вызывает исходную функцию.

Заключение

Декораторы Python представляют собой мощный инструмент для модификации поведения функций или классов. Они позволяют добавлять новую функциональность к существующим объектам, не изменяя их исходный код. В этой статье мы рассмотрели, как работают декораторы и предоставили примеры использования. Надеюсь, этот материал помог вам лучше понять декораторы Python!

Видео по теме

Декораторы в Python Часть 1. Decorator Python

Декораторы Python на простых примерах

#45. Введение в декораторы функций | Python для начинающих

Похожие статьи:

🔧Как поменять версию Python в PyCharm: пошаговая инструкция для начинающих

Как эффективно работать с изображениями в Python: полное руководство

Как правильно работать с модулем datetime в Python: полное руководство для начинающих

Python декораторы: что это такое и как использовать

Как сделать пустой else в Python: простые инструкции и советы

Как сделать конкатенацию чисел в Python: простое руководство для начинающих

Как создать переменную в функции Python 🐍: простой гид для начинающих