Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数指定给变量的python函数_Python_Function_Arguments - Fatal编程技术网

将参数指定给变量的python函数

将参数指定给变量的python函数,python,function,arguments,Python,Function,Arguments,我有一个函数 def x(whatever): .... 我想分配 y = x(whatever) 这样我就可以把y传递给包装器,然后包装器调用y引用的方法。问题是每种类型的函数x都可能有变量参数。在python中是否可以这样做,指定y=x(无论什么),然后将y作为参数传递 我尝试了y=x(无论什么),并将y传递给包装器,然后包装器就这样做了 ret = y() # dict object is not callable 谢谢 我想您正在寻找: 当调用y时,调用x(无论什么) 您可

我有一个函数

def x(whatever):
    ....
我想分配

y = x(whatever)
这样我就可以把y传递给包装器,然后包装器调用y引用的方法。问题是每种类型的函数x都可能有变量参数。在python中是否可以这样做,指定y=x(无论什么),然后将y作为参数传递

我尝试了y=x(无论什么),并将y传递给包装器,然后包装器就这样做了

ret = y() # dict object is not callable
谢谢

我想您正在寻找:

当调用
y
时,调用
x(无论什么)

您可以使用
lambda
实现同样的效果:

y = lambda: x(whatever)

但是
partial()
接受额外的参数,这些参数将传递给包装的可调用对象。

另一个区别是:
partial
返回的可调用对象将参数固定为当时的
值。
lambda
返回的可调用项在调用时使用当前值
which
。@chepner:这是真的;这同样适用于
x
。您可以使用
lambda x=x,w=whatever:x(w)
将两者绑定到lambda。
y = lambda: x(whatever)