Я хочу реализовать фрагмент кода, который эквивалентен друг другу:
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(args) < func_args:
partial(func, args)
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)
Моя проблема в том, что я должен вернуть функцию в первом операторе if
, но функция не завершена, чтоизменения должны быть применены к приведенному ниже коду, чтобы они были эквивалентны?
from inspect import getfullargspec
from functools import partial
def incomplete(func):
global inputs
global func_args
inputs = []
func_args = len(getfullargspec(func)[0])
def wrapper(*args):
global inputs
global func_args
if len(inputs) < func_args:
inputs += args
else:
return func(*args)
return wrapper
@incomplete
def add(a, b):
return a + b
add1 = add(1)
assert add1(2) == add(1, 2)