函数作用域 闭包 纯函数
>函数作用域
作用域是指变量的使用范围,如果变量只能在本函数使用,那称为局部变量,在代码非函数定义的变量就是全局变量,全局变量可以由多个函数或者代码使用。
globals 函数和locals函数
globals()获取所有全局变量
locals ()获取所有局部变量
>纯函数
1.纯函数的概念:
简单来说,一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数
2.纯函数的三个原则:
变量只在函数作用域内获取,作为函数的参数传入
不会产生副作用,不会改变被传入的数据或者其它数据(全局变量)
相同的输入保证相同的输出(不管在什么时候调用,传入的参数相同,返回的结果就相同)
3.函数的副作用
副作用是指函数被调用,完成了函数既定的计算任务,但同时因为访问了外部数据,尤其是因为对外部数据进行了写操作,从而一定程度的改变了系统环境
>闭包
满足闭包条件:
条件1 :函数中嵌套函数
条件2:外层函数只返回嵌套函数的函数名
条件3:内存嵌套函数有引用外层的一个非全局变量
作用: 实现数据的锁定 提高稳定性
def func(i):
count = 0
def count_1(count):
count = count + 1
print(count)
return count_1
res = func(1)
res(7) # 可以调用count_1函数 传入的i不是全局变量
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现