【python】偏函数:functools.partial
2017-05-19 本文已影响112人
MJXH
- 偏函数
使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。
>>>import functools
>>>int2 = functools.partial(int,base=2)
>>>int2('1000000')
64
>>>max2=functools.partial(max,10)
注:functools.partial
可以接收函数对象
、*args
和**kw
这3个参数
如functools.partial(int,base=2)
实际上固定了int()
函数的关键字参数base
int2('10010')
和kw = {'base':2}
,int('10010',**kw)
是一样的,结果都是18
如functools.partial(max,10)
会把10作为*args
的一部分自动加到左边,再进行比较大小,如max2(5,6,7)
相当于args = (10, 5, 6, 7),max(*args)
, 结果是10
总结:其实就是函数(int()
函数或是max()
函数)调用的时候,有多个参数,但是其中的一个参数(base=2
,或max中的10
)已经知道了,我们可以通过这个参数重新绑定一个新的函数(int2()
,或是max2()
),然后去调用这个新函数。