python-偏函数(Partial function)
偏函数也是functools
模块中的一个方法,即functools.partial
偏函数就是为了固定某些参数的传入,作为默认参数传入,下面我们以int
为例子来解释用法
#默认为十进制
>>> int('123')
123
#转二进制
>>> int('123',base=2)
1111011
>>> int('123',2)
1111011
#转十六进制
>>> int('123',base=16)
7b
>>> int('123',16)
7b
这时候我们想一直以二进制转换,但是每次都需要写第二个参数很麻烦,我们可以创建一个新函数默认传入第二个参数
def int2(x, base=2):
return int(x, base)
偏函数就是为了让我们不用手动实现这一过程,偏函数实现方式
>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('123')
1111011
>>> int2('123',base=10) #可以对传入的默认值的覆盖
123
创建偏函数向党羽可以传入三个functools.partial(固定的函数, *args(值),* *kw(键值对))
,而后面的参数其实是放在最左边的,所以像上面的base会被覆盖.
所以如果你写
>>> int2 = functools.partial(int, '1234')
>>> int2(8)
668
#等同于
>>> int('1234',8)
668
所以如果参数有顺序要求的,使用偏函数要比较谨慎