Python标准库学习之functools

1.partial类

官方的help文档如是描述partial

partial(func, *args, **keywords) -- new function with partial application

of the given arguments and keywords.

即产生一个带有给定的参数的新的函数(不知道翻译的对不对,但是实际使用是这个意思)

例如:

def add(n1,n2):
    return n1+n2
paradd=functools.partial(add,1)  #绑定一个参数

>>paradd.args

(1,)            #显示一个梆定的参数列表

>>print paradd(2)

3                 #可以看到主要提供一个参数,另一个参数会自动使用绑定的参数

2.函数reduce

与内建函数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__',))


大致看了一个,就是把一个函数封装成另一个函数,具体还没有用过,待续!



你可能感兴趣的:(封装,wrapper,functools)