python基础-函数式编程
概念:
- 电脑运算视作数学上的函数计算
- 高阶函数:map,reduce,filter
- 无副作用,相同的参数调用时钟产生同样的结果
闭包Closure
为什么为出现闭包?
我们想要在函数外部获取函数内部的局部变量,但是python由是 自下而上的链式作用域,所以不行,那么用相反的思想,f1函数内部再创建一个函数f2,f2就可以访问f1的局部变量,像这样
def f1():
n=999
def f2():
print(n)
外部函数返回内部函数的引用,那么就可以在全局中访问f1的局部变量了。
用途
- ① 可以读取函数内部的变量,
- ②让这些变量的值始终保持在内存中。
例子:
def cache(func):
store = {} # 外部自由变量
@wraps(func)
def _ (n): # 闭包函数
if n in store:
return store[n]
else:
ret = func(n)
store[n] = ret
return ret
return _
def f(n):
if n<=1:
return 1
return f(n-1) + f(n-2)
闭包:引用了外部自由变量的函数
自由变量:不在当前闭包函数定义的变量
特性:自由变量会和闭包函数同时存在
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具