在python中,我有一个函数f(x,y)定义为
def f(x,y):
return x + y
Run Code Online (Sandbox Code Playgroud)
现在我想为运行时确定的y的固定值定义函数g(x)= f(x,y).在我的特定情况下,我循环遍历y的几个值,并且需要为每次迭代生成此函数g(x):
for y in range(0,10):
def g(x):
return f(x,y)
#do something with g(x)...
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但我的问题是,是否有更有效的方法来做到这一点?在我看来,在每次循环迭代中创建一个函数对象在内存/计算时间方面可能变得低效.
>>> def f(x, y):
return x * y
>>> from functools import partial
>>> g = partial(f, y=2)
>>> g(3)
6
Run Code Online (Sandbox Code Playgroud)