官方的help文档如是描述partial
partial(func, *args, **keywords) -- new function with partial application
of the given arguments and keywords.
即产生一个带有给定的参数的新的函数(不知道翻译的对不对,但是实际使用是这个意思)
例如:
def add(n1,n2): return n1+n2paradd=functools.partial(add,1) #绑定一个参数
>>paradd.args
(1,) #显示一个梆定的参数列表
>>print paradd(2)
3 #可以看到主要提供一个参数,另一个参数会自动使用绑定的参数
与内建函数reduce函数用法相同:
reduce(function, sequence[, initial]) -> value
从做到右对序列中的项分别计算,例如:
>>functools.reduce(lambda x,y:x*y,[1,2,3,4,5])
120 #((((1×2)×3)×4)×5)
如果提供了initial值则把initial值放在序列的列首,然后在计算:
>>functools.reduce(lamda x,y:x*y,[1,2,3,4,5],100)
12000 #(((((100×1)×2)×3)×4)×5)
其他还有
update_wrapper(wrapper, wrapped, assigned=('__module__', '__name__', '__doc__'), updated=('__dict__',))
和
wraps(wrapped, assigned=('__module__', '__name__', '__doc__'), updated=('__dict__',))
大致看了一个,就是把一个函数封装成另一个函数,具体还没有用过,待续!