我刚从 Matlab 切换到 Python,我想使用 lambda 函数将f1(x,y)具有多个参数的函数映射到一个参数函数f2(x)以进行优化。我想,当我映射功能f2(x) <- f1(x,y=y1),然后y将保持不变,无论什么样y1的变化,在Matlab这是默认为事实,但如果我尝试在Python中,它不断变化如下例
>>> def f1(x,y):
>>> return (x+y)
>>> y1 = 2
>>> f2 = lambda x: f1(x,y1)
>>> f2(1)
3
Run Code Online (Sandbox Code Playgroud)
我希望即使我改变也f2(1)保持3不变y1,但是如果我改变y1,整体f1(1)也会改变如下
>>> y1 = 5
>>> f2(1)
6
Run Code Online (Sandbox Code Playgroud)
我不知道有没有一种方式,当我宣布f2 = lambda x: f1(x,y1),然后f1将采取的值y1,当时并修复它f2。这样做的原因是因为我想为不同的场景动态创建不同的函数,然后将它们全部相加。我还是 Python 新手,请帮忙,非常感谢。