Python partial

示例

该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,。的调用f在时完成的评估,它将第四个参数传递给。gg(2)f

一种考虑的方法partial是移位寄存器。当时将一个参数推入某个函数。partial在数据以流形式进入并且我们不能传递多个参数的情况下,它非常方便。