python偏函数

作者 新城 日期 2017-08-24
python偏函数



偏函数

偏函数的作用就是将部分函数参数锁定 从而使得函数的调用更加方便 简洁

int()函数可以把字符串转换为整数

1
2
int('123')  # 123  默认转换为10进制
int('123',16) # 291 转化为16进制

假若我们有很多个参数需要转换为十六进制 我们每次都需要在int中加进去16 或者可以定义如下函数

1
2
3
4
def int16(x, base=16):
return int(x, base)

int16('123') # 输出 291

functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int16()

1
2
3
4
import functools
int16 = functools.partial(int, base=16)

int16('123') #输出291

虽然可以这样调用int16(‘123’) 但是也可以 int16(‘123’,10) #输出123
总结: functools.partial的作用就是将函数的参数固定住 设置成默认的参数

最后,创建偏函数时可以接受函数对象

int2 = functools.partial(int, base=2)
相当于
kw = { base: 2 }
int(‘10010’, **kw)

当传入单个参数时

1
2
3
4
max2 = functools.partial(max, 10)

max2(5,6,7) #输出 10
相当于max2(10,5,6,7)

当函数参数太多,需要简化或者固定住函数的一些参数时 可以使用functools.partial 使得调用更加简单