如何修复一个比原始维度更小的维度的函数 它的论点:
例如,我想用sum函数制作后继函数,如下所示:
def add(x,y):
return x+y
现在我正在寻找这样的事情:
g = f(〜,1)这将是后继函数,即g(x)= x + 1.
答案 0 :(得分:10)
您可以编写自己的功能:
def g(y):
return f(2, y)
或者更简洁:
g = lambda y: f(2, y)
还有functools.partial
:
import functools
def f(x, y):
return x + y
g = functools.partial(f, 2)
然后您可以像以前一样调用它:
>>> g(3)
5
答案 1 :(得分:2)
如果你做的不止一点,那么你可以使用类似装饰的东西。
def with_x(x, fn, name=None):
def foo(*args, **kwargs):
return fn(x, *args, **kwargs)
if name:
foo.__name__ = name
return foo
def example(x,y):
return x**y
g = with_x(2, example)
g(3) #8
如果您关心结果函数的名称,请使用name =参数。如果需要的话,可以使用 inspect 模块将其他黑客变得更加精彩。但是之后你重新编写了前面提到的functools部分内容,以避免必须提供关键字参数。