问题描述
def foo(x: Type1,y: Type2):
do something..
def bar(f: Callable,args..):
#do something
#return another function Fizz
并且我希望返回的函数 (Fizz) 具有如下签名:
def Fizz(x: Type1,y: Type2,...)
pass
解决方法
我发现一个可行的解决方案是:
def foo(x: Type1,y: Type2):
#do something..
def bar(func: Callable):
func_signature = signature(func)
params_it = iter(func_signature.parameters.values())
x = next(params_it)
y = next(params_it)
def fizz(x: x.annotation,y: y.annotation):
pass
return fizz
但该函数的局限性在于bar
“知道”foo
的参数名称