偏函数可以通过设定参数的默认值,降低函数调用的难度。functools.partial就是帮助我们创建一个偏函数。
import functools
int2 = functools.partial(int, base = 2)
int2('1000')8这个函数等价于:
# 转换二进制字符串
# int函数默认将字符串转换为整数,base默认为10。如果传入base参数,就可以做n进制转换。
def int2(x, base = 2):
return int(x, base)
int2('1000')8总结:functools.partial函数作用是将一个函数的某个参数给固定住(也就是设置一个默认值),返回一个新的函数,调用这个新函数会更加简单。
在int2函数中,仅仅把base参数重新设置为默认值2,但也可以在函数调用时传入其他参数。
int2('1234', base = 8)668创建偏函数的时候,可以接受函数对象、*args、**kw这三个参数,当传入int2 = functools.partial(int, base = 2),就固定住了int函数的关键字参数base。
int2('10010')18kw = {'base':2}
int('10010',**kw)18当传入:
max2 = functools.partial(max, 10)10会作为*args的一部分自动加到左边。也就是:
max2(5,6,7)10总结:当函数参数太多需要简化的时候,可以使用functools.partial创建一个新的函数,这个函数可以固定住原函数的部分参数,从而在调用的时候更加简单。
评论 (0)