使用具有多个参数的函数的单个参数创建函数的最佳方法是什么?

use*_*430 1 python

在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)

上面的代码有效,但我的问题是,是否有更有效的方法来做到这一点?在我看来,在每次循环迭代中创建一个函数对象在内存/计算时间方面可能变得低效.

jon*_*rpe 5

用途functools.partial:

>>> 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)