局部
partial
函数从另一个函数创建部分函数应用程序。它用于将值绑定到函数的某些参数(或关键字参数),并在没有已定义的参数的情况下生成可调用的值。
>>> from functools import partial
>>> unhex = partial(int, base=16)
>>> unhex.__doc__ = 'Convert base16 string to int'
>>> unhex('ca11ab1e')
3390155550
partial()
,顾名思义,允许对函数进行部分评估。我们来看下面的例子:
In [2]: from functools import partial
In [3]: def f(a, b, c, x):
...: return 1000*a + 100*b + 10*c + x
...:
In [4]: g = partial(f, 1, 1, 1)
In [5]: print g(2)
1112
当 g
被创建时,f
,它接受四个参数(a, b, c, x
),也会对前三个参数 a, b, c,
进行部分评估。当 g
被称为 g(2)
时,f
的评估完成,g(2)
将第四个参数传递给 f
。
想到 partial
的一种方法是移位寄存器; 当时将一个参数推入某个函数。partial
对于数据作为流进入的情况很方便,我们不能传递多个参数。