带有参数的python函数分配给变量

wak*_*aka 1 python arguments function

我有一个功能

def x(whatever):
    ....
Run Code Online (Sandbox Code Playgroud)

我想分配

y = x(whatever)
Run Code Online (Sandbox Code Playgroud)

这样我就可以将y传递给一个包装器,然后调用y引用的方法.问题是每种类型的函数x都可以有可变参数.是否可以在python中执行此操作,指定y = x(无论如何),然后将y作为参数传递.

我尝试了y = x(无论如何)并将y传递给包装器然后做了

ret = y() # dict object is not callable
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mar*_*ers 5

你正在寻找functools.partial():

from functools import partial

y = partial(x, whatever)
Run Code Online (Sandbox Code Playgroud)

y被调用时,x(whatever)被调用.

您可以通过以下方式实现相同目标lambda:

y = lambda: x(whatever)
Run Code Online (Sandbox Code Playgroud)

但是a partial()接受其他参数,这些参数将被传递给包装的callable.