柯里化(currying)是一個有趣的計算機科學術語,它指的是通過“部分參數應用”(partial argument application)從現有函數派生出新函數的技術。假設我們有一個簡單的執行兩數相加的函數:
def add_numbers(a,b):
return a+b
通過這個函數,我們可以派生出一個新的只有一個參數的函數——add_five,它用於對其參數加5:
add_five = lambda b: add_numbers(5, b)
add_numbers的第二個參數稱爲“柯里化的”(curried)。這裏沒什麼特別花哨的東西,因爲我們其實就只是定義了一個可以調用現有函數的新函數而已。內置的functools模塊可以用partial函數將此過程簡化:
from functools import partial
add_five=partial(add_numbers,5)