偏函数可以通过设定参数的默认值,降低函数调用的难度。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')
18
kw = {'base':2}
int('10010',**kw)
18
当传入:
max2 = functools.partial(max, 10)
10会作为*args
的一部分自动加到左边。也就是:
max2(5,6,7)
10
总结:当函数参数太多需要简化的时候,可以使用functools.partial
创建一个新的函数,这个函数可以固定住原函数的部分参数,从而在调用的时候更加简单。
评论 (0)