函数式编程
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。
函数就是面向过程的程序设计的基本单元。
编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
高阶函数
英文:Higher-ordor function
变量可以指向函数
函数本身也可以赋值给变量,即:变量可以指向函数。
>>> f = abs
>>> f
<built-in function abs>
则可以直接利用变量来进行调用函数:
>>> f = abs
>>> f(-10)
10
函数名也是变量
函数名其实本质是指向函数的变量。
若将一个函数名指向另一个对象,那么该函数名就不能进行调用函数了,若想回复函数功能,则需要重启Pyrhon交互环境
>>> abs = 10
>>> abs(-10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
文件中一处修改函数的对象,那么在其他模块也生效。
传入函数
- 变量可以指向函数
- 函数的参数可以接受变量
综上,那么一个函数就可以接受另一个函数作为参数,称之为高阶函数
例子:
f = add
def add(x, y, f):
return f(x) + f(y)
小结
- 把函数作为参数传入,这样函数称之为高阶函数
- 函数式编程就是指这种高度抽象的编程范式