我想提前将一个python函数传递给另一个函数,让它的一些参数“填满”。
这就是简单化我所做的:
def add(x, y): return x + y def increment_factory(i): # create a function that increments by i return (lambda y: add(i, y)) inc2 = increment_factory(2) print inc2(3) # prints 5
我不想用某种方式 args 后来爆炸了 *args 因为我传递的函数 inc2 进不知道过 阿尔茨海默病 对它。
args
*args
inc2
阿尔茨海默病
对于一个团队项目来说,这感觉有点太聪明了…有没有一种更直接的或是蟒蛇式的方法?
谢谢!
这被称为货币化,或部分应用。您可以使用内置的 functools.partial() . 像下面这样的事情可以满足你的需要。
import functools def add(x,y): return x + y inc2 = functools.partial(add, 2) print inc2(3)