参考:
#########################################3
函数是python内建支持的一种封装,通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。
函数就是面向过程的程序设计的基本单元
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
python对函数式编程提供部分支持。由于python允许使用变量,因此,python不是纯函数式编程语言
#############################################3
高阶函数(Higher-order function)
变量可以指向函数
以python内置的求绝对值的函数abs()为例:
abs(-10)
abs
x=abs(-10)
x
f=abs
f
结论:函数本身也可以赋值给变量,即:变量可以指向函数
函数名也是变量
函数名其实就是指向函数的变量,对于abs()函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数
当abs指向10后,就无法通过abs(-10)调用该函数,因为abs这个变量不指向求绝对值函数了
note:要恢复abs函数,需要重启python交互环境
传入函数
函数的参数能接收变量,而变量可以指向函数,所以一个函数可以接收另一个函数作为参数,这种函数就称为高阶函数:
def add(x, y, f):
return f(x)+f(y)
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式