这是 Python 基础课的第六节 - 函数下:高阶函数。该系列包含 11 节,目录如下:
编程概览
元素型数据
容器型数据
流程控制:条件-循环-异常处理
函数上:低阶函数
函数下:高阶函数
类和对象:封装-继承-多态-组合
字符串专场:格式化和正则化
解析表达式:简约也简单
生成器和迭代器:简约不简单
装饰器:高端不简单
上贴介绍的普通函数和匿名函数都属于低阶函数,即输入和输出都不是函数,而在 Python 里函数是「一等公民」,我们可以
把函数赋值给变量 (assign function to variable)
把函数储存到容器 (store functions in container)
把函数传递给函数 (pass function to function)
在函数里返回函数 (return function in function)
如下图所示:

高阶函数在函数化编程 (functional programming) 很常见,主要有两种形式:
第一种形式的典型是闭包 (closure),其特点为
通常是嵌套函数 (nested function) 的结构。
该结构由外函数 (outer function) 嵌套内函数 (inner function)。
内函数必须引用非本地 (non-local) 变量。
外函数必须返回内函数。
第二种形式的典型例子由映射函数 (map)、筛选函数 (filter)、累计函数 (reduce) 和偏函数 (partial)。
此外还有种特殊的函数范式,叫做柯里化 (currying),它可以把“接受单个参数的函数”转换成“接受多个参数的函数”。
付费用户(付 1 赠 1)可以获得:
