functool.partail 方法可以为一个函数生成偏函数
import functools def f(a,b,c,d): print a,b,c,d a=‘a‘ b=‘b‘ f1=functools.partial(f,a,b) f1(‘a‘,‘d‘)
这里函数f有a,b,c,d四个变量,通过functool.partail可以生成偏函数f1,f1运行的代码与f相同,只是相对于f,a,b两个参数是固定的了,每次调用f1时,只需要输入c,d两个参数。
可以以k=v的形式输入参数,可以自定义哪个参数是固定的,哪个参数是可变的,即调用函数时才输入
import functools def f(a,b,c,d): print a,b,c,d a=‘a‘ b=‘b‘ f1=functools.partial(f,c=c,b=b) f1(a=‘a‘,d=‘d‘)
这个偏函数有什么用?例如经常要调用一个函数,但是这个函数的某些参数是固定的,某些是不固定的,这时候就可以生成一个偏函数,省略固定的参数,而不需要每次调用都输入固定的参数
参考:http://www.cnblogs.com/huxi/archive/2011/06/24/2089358.html