Python 基础视频课 - 6. 函数下:高阶函数

Python 基础视频课 - 6. 函数下:高阶函数

这是 Python 基础课的第六节 - 函数下:高阶函数。该系列包含 11 节,目录如下:

  1. 编程概览

  2. 元素型数据

  3. 容器型数据

  4. 流程控制:条件-循环-异常处理

  5. 函数上:低阶函数

  6. 函数下:高阶函数

  7. 类和对象:封装-继承-多态-组合

  8. 字符串专场:格式化和正则化

  9. 解析表达式:简约也简单

  10. 生成器和迭代器:简约不简单

  11. 装饰器:高端不简单

上贴介绍的普通函数和匿名函数都属于低阶函数,即输入和输出都不是函数,而在 Python 里函数是「一等公民」,我们可以

  • 把函数赋值给变量 (assign function to variable)

  • 把函数储存到容器 (store functions in container)

  • 把函数传递给函数 (pass function to function)

  • 在函数里返回函数 (return function in function)

如下图所示:

Python 基础视频课 - 6. 函数下:高阶函数

高阶函数在函数化编程 (functional programming) 很常见,主要有两种形式:

  • 函数作为返回

  • 函数作为参数

第一种形式的典型是闭包 (closure),其特点为

  • 通常是嵌套函数 (nested function) 的结构。

  • 该结构由外函数 (outer function) 嵌套内函数 (inner function)。

  • 内函数必须引用非本地 (non-local) 变量。

  • 外函数必须返回内函数。

第二种形式的典型例子由映射函数 (map)、筛选函数 (filter)、累计函数 (reduce) 和函数 (partial)。

此外还有种特殊的函数范式,叫做柯里化 (currying),它可以把“接受单个参数的函数”转换成“接受多个参数的函数”。

付费用户(付 1 赠 1)可以获得:

  • 观看课程视频 (50 分钟)

  • PDF 课件

  • Python 代码 (Jupyter Notebook)

Python 基础视频课 - 6. 函数下:高阶函数

PDF 课件

Python 基础视频课 - 6. 函数下:高阶函数

Python 基础视频课 - 6. 函数下:高阶函数

Python 基础视频课 - 6. 函数下:高阶函数

Python 基础视频课 - 6. 函数下:高阶函数