将参数赋值给变量的Python函数
我有一个函数
def x(whatever):
....
我想给它赋值
y = x(whatever)
这样我就可以把y传给一个包装器,然后这个包装器再调用y所指向的方法。问题是,每种类型的函数x可以有不同数量的参数。请问在Python中,能否做到这样:给y赋值为x(whatever),然后把y作为参数传递。
我试过y = x(whatever),然后把y传给包装器,包装器接着做了
ret = y() # dict object is not callable
谢谢!
1 个回答
6
我觉得你在找的是 functools.partial()
:
from functools import partial
y = partial(x, whatever)
当你调用 y
的时候,其实是调用了 x(whatever)
。
你也可以用 lambda
来实现同样的效果:
y = lambda: x(whatever)
不过 partial()
可以接受额外的参数,这些参数会传递给被包装的可调用对象。