py函数式编程
函数式编程把计算视为函数而非指令,纯函数式编程不需要变量,没有副作用,测试简单,python支持的函数式编程不是纯函数式编程,允许有变量存在,支持高阶函数,支持闭包,有限度的支持匿名函数
变量可以指向函数,而函数又可以把变量作为参数,所以高阶函数就是把函数作为参数的函数。
def add(x, y, f):
return f(x) + f(y)
以上就是把函数作为参数
map()是python内置的高阶函数,格式是map(f,L),会得到一个新的list
reduce()和map()差不多,但是reduce中的f必须接收两个参数,而且还可以在后面加入第三个可选参数作为计算的初始值,格式是reduce(f,L,a)。
python3中全局变量中没有了reduce函数,此函数被放进functools模块中,可以从functools模块中导入该函数,方法是from functools import reduce
filter()格式也和map()差不多,但是filter中的f的作用是用来对每个元素进行判断,返回真或假,过滤不适合的元素,返回一个新的list。
sorted() >>>排序函数,对list进行排序
在函数内部定义的函数引用了外部函数的变量并且返回内层函数的情况叫闭包
lambda表示匿名函数,map(lambda x:x*x,[1,2,3,4,5,6,7]),匿名函数只能有一个表达式,并且不写return,返回值就是该表达式的结果