偏函数:
functools模块提供很多有用的功能,其中就有偏函数
tip:int()函数可提供额外的base参数,
int('12345', base=8)
将字符串转换为8进制数。
偏函数的应用场景,假如要转换大量的二进制字符串,每次都传入int(x, base=2)非常麻烦,于是,我们想到,可以定义一个int2()的函数,默认把base=2传进去:
def int2(x, base=2):
return int(x, base)
functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
>>>import functools>>>int2 = functools.partial(int, base=2)>>>int2('1000000')64>>>int2('1010101')85
小结
当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。