區域性

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 對於資料作為流進入的情況很方便,我們不能傳遞多個引數。