参考:https://coolshell.cn/articles/10822.html https://www.imooc.com/learn/317
用过python的闭包,装饰器,map,reduce,filter等函数,也知道可以把一个函数作为一个变量进行赋值,传递;但是还不知道这些都属于函数式编程的范畴,也一直以为这些都是理所当然的,当然,去区分我们写的程序是函数式编程的范畴还是过程式编程的范畴并不重要,而是理解它的思想,把这种思想运用到平时的项目中去。最近读了陈皓老师的博客,看了廖雪峰老师的python进阶教程,将一些python的函数式编程做一个总结。后续项目中如果有更深的体会,再更新。
目录
一.python的函数式编程的特点
1.不是纯函数式编程,允许有变量
2.支持高阶函数,函数可以作为变量传入一个函数
3.支持闭包,函数可以作为另一个函数的返回值
4.支持匿名函数
二.高阶函数
1.变量可以指向一个函数
# 变量可以指向一个函数
f = abs # 此时f指向python的内建函数abs
print(f(-3)) # 输出3
2.函数名其实是指向函数的一个变量,函数名和普通的变量没有什么区别
# 函数名其实是指向函数的一个变量
abs = len # abs指向len函数
print(abs([1, 2, 3, 4])) # 输出4
print(abs(-3)) # 程序报错
3.高阶函数是指可以接收函数作为参数的函数
# 高阶函数是指可以接收函数作为参数的函数
def add(x, y, f):
return f(x) + f(y)
print(add(1, -3, abs)) #输出4
三.Python内置的高阶函数
1.map函数
原理:map函数接收一个函数f,和一个可