Передача параметра декоратору в другом классе - PullRequest
0 голосов
/ 31 января 2020

Я хотел посмотреть, возможно ли передать параметр декоратору, который находится в скрипте, который вызывается из другого скрипта, где этот параметр существует. Например, допустим, у меня есть script_1.py, который вызывает метод:

import function_1

param_1 = 5
result = function_1(arg1, arg2)

Теперь эта функция находится в script_2.py, где декоратор принимает param_1

@decorator(param_1)
def function_1(arg1, arg2):
    #do some stuff

Так есть ли способ вызвать функцию с декоратором в script_1.py и передать param_1 в декоратор в script_2.py?

1 Ответ

1 голос
/ 31 января 2020

Декораторы запускаются сразу после вычисления оператора def.

@decorator(param1)
def function_1(arg1, arg2):
    ...

эквивалентно

def function_1(arg1, arg2):
    ...

function_1 = decorator(param1)(function_1)

Этот код запускается при выполнении оператора import, а не когда вы звоните function_1.

...