函数的定义中可以设置形参,并给参数赋默认值以便函数调用中省略部分参数的填写,以便简化函数的调用,但当需要大量不同函数调用,需要不同的默认参数时,只设定一次参数的默认值就不能满足不同函数调用的需求了,所以Python中的 functools 模块中加入了 partial 方法,用来泛化偏函数应用(partial function application, PFA)。
from functools import partial
from operator import add
# add(1, x) 可以完成 x+1 的操作
>>> add(1, 5)
6
# 使用 PFA 可以简化这个函数的调用
>>> add1 = partial(add, 1)
>>> add1(5)
6
# 第二个例子, 将二进制字符串转换为十进制整数
>>> int('10010', base=2)
18
# 使用 PFA
>>> baseTwo = partial(int, base=2)
>>> baseTwo('10010')
18