假设我在python 中定义了一个函数
def f(x,y):
return(x+y)
现在我想定义一个函数g(__(=f(__,y(,也就是说,我已经为它指定了一个值y,并希望它是一个只需要一个参数的可调用函数。有没有一种优雅的方法可以做到这一点?
您可以编写一个简单的lambda函数,如
g = lambda x: f(x, 100)
functools.partial
就是您所需要的:https://docs.python.org/3/library/functools.html
from functools import partial
g = partial(f, y=your_constant_value_for_y)
调用g(x)
相当于调用f(x, your_constant_value_for_y)
。
在这种情况下,您必须传递许多参数:
def f(x, *args):
return (x, args)
def g(x):
return f(x, 10, 20, 20)