将参数赋值给变量的Python函数

2 投票
1 回答
1365 浏览
提问于 2025-04-17 21:59

我有一个函数

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() 可以接受额外的参数,这些参数会传递给被包装的可调用对象。

撰写回答