Назад к вопросам
Middle
70
questionbank

Как можно передать переменную в декоратор на Python?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Передача переменных в декоратор возможна через функцию-фабрику декораторов.

# Фабрика декораторов принимает аргументы
def decorator_factory(arg1, arg2):
    # Возвращает сам декоратор (замыкание)
    def my_decorator(func):
        # Функция-обертка
        def wrapper(*args, **kwargs):
            print(f"Аргумент 1: {arg1}, Аргумент 2: {arg2}")
            return func(*args, **kwargs)
        return wrapper
    return my_decorator

# Использование декоратора с аргументами
@decorator_factory("значение 1", 123)
def my_function():
    print("Выполняется декорированная функция")

# Вызов функции
my_function()