
偏函数
偏函数的作用就是将部分函数参数锁定 从而使得函数的调用更加方便 简洁
int()函数可以把字符串转换为整数1
2int('123') # 123 默认转换为10进制
int('123',16) # 291 转化为16进制
假若我们有很多个参数需要转换为十六进制 我们每次都需要在int中加进去16 或者可以定义如下函数1
2
3
4def int16(x, base=16):
return int(x, base)
int16('123') # 输出 291
functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int16()
1 | import functools |
虽然可以这样调用int16(‘123’) 但是也可以 int16(‘123’,10) #输出123
总结: functools.partial的作用就是将函数的参数固定住 设置成默认的参数
最后,创建偏函数时可以接受函数对象
int2 = functools.partial(int, base=2)
相当于
kw = { base: 2 }
int(‘10010’, **kw)
当传入单个参数时1
2
3
4max2 = functools.partial(max, 10)
max2(5,6,7) #输出 10
相当于max2(10,5,6,7)
当函数参数太多,需要简化或者固定住函数的一些参数时 可以使用functools.partial 使得调用更加简单