转载

functools

functools 模块包含了非常多很有用的函数,甚至可以说是比较常用的。这些函数主要用于创建高阶函数、函数式编程和装饰器的函数和装饰器。

partial()

def spam(a,b,c,d):
    print(a,b,c,d)
from functools import partial
s1 = partial(spam,1)
s1(2,3,4) # 1,2,3,4

在类定义中使用partial, 那么这个函数的行为类似于静态方法而不是实例方法。

reduce(function, items [,initial])

def add(a,b):
    return a+b
from functools import reduce
reduce(add, [i for i in range(1,11)]) # 55

从可迭代对象中取前两个值,交给作为第一个参数传入的处理函数处理(类似map的第一个参数),完了再将函数的返回值与

可迭代对象中的下一个值作为处理函数的值。从这可以知道这个处理函数必须要能接受两个参数。

update_warpper

我在之前的python-note中记录过一点,简单来说就是为了能够保有原始函数的包括docstring在内的一些属性而提供的。然而每次调用update_warpper不方便, 于是就有了下一小节的warps。

原文  http://pyclear.me/2016/12/03/functools/
正文到此结束
Loading...