社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
WEB开发
linux   web工具   Git   MongoDB   zookeeper   bottle   Redis   tornado   IE   DATABASE   NoSql   MQ   NGINX   Bootstrap   js   其他Web框架   Jquery   peewee  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
运营
印度
印度  
Python社区  »  Python

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

王的机器 • 1 周前 • 45 次点击  

这是 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)


如下图所示:



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


  • 函数作为返回

  • 函数作为参数


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


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

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

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

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


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


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



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


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

  • PDF 课件

  • Python 代码 (Jupyter Notebook)





PDF 课件

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/74389
 
45 次点击  
分享到微博