python中的偏函数是由functools模块所提供,当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。
比如在int函数中转为2进制的时候
方法1:每次都传入int(x, base=2)
方法2:定义一个int2()的函数,默认把base=2传进去
def int2(x, base=2):
return int(x, base)
方法3:使用functools.partial创建一个偏函数,不需要重新定义int2(),可以直接使用下面的代码创建一个新的函数int2,把int函数的某些参数给固定住(也就是设置默认值),返回一个新的函数int2,调用这个新函数会更简单。:
import functools
int2 = functools.partial(int, base=2)
int2('1000000')
输出结果:64
functools.partial可以把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值,这样,新函数调用的难度就降低了。