闭包
Python 中一切皆对象
- 函数也是对象
- 可以把一个函数当成另外一个参数,传递到另外的函数里,也可以把一个函数当做另一个函数的返回值
什么是闭包
- 闭包:函数 + 上下文(环境变量)
- 闭包的信息保存在函数的
__closure__
里
1 | def curve_pre(): |
使用闭包注意事项
- 如果没有捕获变量,则closure为空
1 | def f1(): |
闭包的应用
- 闭包可以封装细节
1 | def factory(pos): |
函数式编程
lambda 表达式 (匿名函数)
1 | # 普通函数 |
三元表达式
- 条件为真的返回结果 if 条件判断 else 条件为假的返回结果
- 相当于其他语言的?:表达是
1 | a = 12 |
高阶函数
map
1 | def fun(a): |
reduce
1 | from functools import reduce |
filter
1 | from functools import reduce |