淘宝客 网站选择WORDPRESS网站编辑器失效

张小明 2026/1/1 16:01:11
淘宝客 网站选择WORDPRESS,网站编辑器失效,代码素材网站,备案做电影网站一、全局变量和局部变量1.作用域在python中,作用域分为全局作用域和局部作用域.2.变量的作用域在局部定义的变量----局部变量在全局定义的变量----全局变量3.全局变量与局部变量的访问范围① 在全局作用域中可以访问全局变量#xff0c;在局部作用域中可以访问局部变量…一、全局变量和局部变量1.作用域在python中,作用域分为全局作用域和局部作用域.2.变量的作用域在局部定义的变量----局部变量在全局定义的变量----全局变量3.全局变量与局部变量的访问范围① 在全局作用域中可以访问全局变量在局部作用域中可以访问局部变量# 全局作用域全局变量 num1 10 def func(): # 局部作用域局部变量 num2 20 # ① 在局部访问局部变量 print(num2) # ① 在全局访问全局变量 print(num1) # 调用函数 func()② 在局部作用域中可以访问全局变量# 全局作用域全局变量 num1 10 def func(): # 局部作用域局部变量 # ② 在局部作用域中可以访问全局变量 print(num1) # 调用函数 func()③ 在全局作用域中不能访问局部变量# 全局作用域全局变量 num1 10 def func(): # 局部作用域局部变量 num2 20 # 调用函数 func() # 在全局作用域中调用局部变量num2 print(num2)这里运行会报错显示 num2 is not defined4.问题为什么在全局作用域中无法访问局部变量主要原因在于在Python的底层存在一个“垃圾回收机制”主要的作用就是回收内存空间。加快计算机的运行。我们在Python代码中定义的变量也是需要占用内存的所以Python为了回收已经被已经过的内存会自动将函数运行以后的内部变量和程序直接回收。二、闭包1.闭包的作用在函数嵌套的前提下内部函数使用了外部函数的变量并且外部函数返回了内部函数我们把这个使用外部函数变量的内部函数称为闭包。2.闭包的构成条件三个必要条件:有嵌套,有引用,有返回def func(): num 20 # 局部变量 def inner(): print(num) return inner # 实际上inner函数并没有执行只是返回了inner函数在内存中的地址 f func() # 相当于把inner在内存中的地址0x...赋值给变量f f() # 找到inner函数的内存地址并执行器内部的代码num20)在于闭包函数保留了num20这个局部变量闭包的作用正常情况下当执行func()的时候函数内部的变量num 20会随着函数的func函数的结束而被垃圾回收机制所回收。所以闭包的真正作用就是可以在全局作用域中实现间接对局部变量进行访问。注意:由于闭包引用了外部函数的变量则外部函数的变量没有及时释放消耗内存。3.在闭包的内部实现对外部变量的修改使用nolocal和globaldef outer(): num 10 def inner(): # 这种写法无法实现通过闭包修改外部的局部变量 nonlocal num num 20 print(outer函数中的num, num) # 10 inner() # 执行函数inner让num20生效 print(outer函数中的num, num) # 20 return inner f outer() f()4.闭包的综合案例闭包的作用可以在全局作用域中间接访问局部变量在函数执行以后 闭包编写三步走① 有嵌套 ② 有引用 ③ 有返回 分析 执行f func()的时候result赋值为0然后定义inner返回inner最终结果f inner函数的内存地址 执行f(1)相当于执行inner函数nonlocal引用局部变量result0然后进行1操作弹出011 继续执行 执行f(2)相当于执行inner函数声明nonlocal result代表还是引用外部的局部变量由于此时外部的result已经被 f(1)更改为1了所以由于局部变量一直没有消失所以此时result1执行2操作最终结果为3 def func(): result 0 def inner(num): nonlocal result result num print(result) return inner f func() f(1) # 1 f(2) # 3二、装饰器1.什么是装饰器在不改变现有函数源代码以及函数调用方式的前提下实现给函数增加额外的功能。装饰器的本质就是一个特殊的闭包函数,他在拥有闭包的特点的同时,又必须多一个添加额外功能的条件.2.装饰器的雏形# 要求把登录功能封装起来比如封装成一个函数添加这个登录不能影响现有功能函数 装饰器本质是一个闭包有嵌套、有引用、有返回返回的是函数的内存地址 参数fn在check中也是一个局部变量 参数fn就是要装饰的函数的函数名如comment如download def check(fn): def inner(): # 开发登录功能 print(登录功能) # 调用原函数 fn() return inner # 评论功能前提登录 def comment(): print(评论功能) comment check(comment) comment() # 下载功能前提登录 def download(): print(下载功能) download check(download) download()3.装饰器的定义 装饰器本质就是一个闭包 ① 有嵌套 ② 有引用 ③ 有返回 def check(fn): def inner(): # 开发登录验证功能 print(验证登录) # 执行原有函数 fn() return inner check def comment(): print(发表评论) comment()三、装饰器进阶1.带有参数的装饰器 带有参数的装饰器① 有嵌套 ② 有引用 ③ 有返回 def logging(fn): def inner(*args, **kwargs): # 添加装饰器代码输出日志信息 print(-- 日志信息正在努力计算机 --) # 执行要修饰的函数 fn(*args, **kwargs) # sum_num(a, b) return inner logging def sum_num(*args, **kwargs): result 0 # *args代表不定长元组参数args (10, 20) for i in args: result i # **kwargs代表不定长字典参数 kwargs {a:30, b:40} for i in kwargs.values(): result i print(result) # sum_num带4个参数而且类型不同10和20以元组形式传递a30b40以字典形式传递 sum_num(10, 20, a30, b40)2.带有返回值的装饰器 带有返回值的装饰器① 有嵌套 ② 有引用 ③ 有返回 如果一个函数执行完毕后没有return返回值则默认返回None def logging(fn): def inner(*args, **kwargs): print(-- 日志信息正在努力计算 --) return fn(*args, **kwargs) # fn() sub_num(20, 10) result return inner logging def sub_num(a, b): result a - b return result print(sub_num(20, 10))3.装饰器高级使用装饰器传递参数 通用装饰器① 有嵌套 ② 有引用 ③ 有返回 ④ 有不定长参数 ⑤ 有return返回值 真正问题通过装饰器传递参数我们应该如何接收这个参数呢 答在logging方法的外侧在添加一个函数专门用于接收传递过来的参数 def logging(flag): # flag 或 flag - def decorator(fn): def inner(*args, **kwargs): if flag : print(-- 日志信息正在努力进行加法运算 --) elif flag -: print(-- 日志信息正在努力进行减法运算 --) return fn(*args, **kwargs) return inner return decorator logging() def sum_num(a, b): result a b return result logging(-) def sub_num(a, b): result a - b return result print(sum_num(10, 20)) print(sub_num(100, 80))四、结语今天讲的闭包和装饰器,可能有的小细节没有讲的很透彻,大家在看的时候有哪些还不懂得地方可以私信我.
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

久久建筑网下载赣州网络优化

8.4 Single-Agent vs Multi-Agent 引言 在前几节中,我们深入探讨了AI Agent的核心概念、技术组件以及在Coze平台上的具体实现。随着AI技术的不断发展,我们发现单一Agent在处理复杂任务时存在一定的局限性,而多个Agent协同工作可以发挥更大的优势。 Single-Agent和Multi-A…

张小明 2025/12/30 11:22:59 网站建设

淄博瓷砖网站建设中企动力商标交易网

EJB与POJO在JBI容器中的绑定实践 1. EJB在JBI容器中的绑定 1.1 启动ServiceMix容器 要启动ServiceMix容器,可执行同一文件夹中的 servicemix.xml 文件,命令如下: %SERVICEMIX_HOME%/bin/servicemix servicemix.xml同一文件夹中的 Client.html 文件可用于发送消息,…

张小明 2025/12/30 11:22:57 网站建设

购物网站的建设与维护建筑网下载

简介 大厂正加速抢夺AI人才,AI产品经理成为热门高薪岗位(初级25-40万/年,高级50-80万/年),前景广阔(2025年将带动5万亿市场)。无技术背景也能转型,尤其是注重行业场景洞察和商业化能力的AI应用型产品经理。文章提供不同背景人士的…

张小明 2025/12/30 11:22:54 网站建设

网站设计ai服务网站推广方案

MuPDF是一款专注于PDF文档处理的轻量级开源软件,以其卓越的渲染性能和简洁的设计理念在PDF工具领域脱颖而出。这款跨平台工具在保持小巧体积的同时,提供了完整的PDF阅读和基础编辑功能,适合追求效率和简洁的用户群体。 获取地址:…

张小明 2025/12/30 11:22:52 网站建设

哪个网站推广比较好易语言wordpress发帖

摘要 通过控制和改变所选参数有助于检查给定光学系统的性能。 VirtualLab Fusion提供了完全灵活且计算效率高(通过并行化)的参数运行,使用户可以指定不同的参数变化方式。 作为示例,它可以用于所研究的任何系统参数的公差分析。 …

张小明 2025/12/30 11:22:50 网站建设

学c还是网站开发wordpress 文章页面失败

完整攻略:使用Typora LaTeX主题打造专业学术论文格式 【免费下载链接】typora-latex-theme 将Typora伪装成LaTeX的中文样式主题,本科生轻量级课程论文撰写的好帮手。This is a theme disguising Typora into Chinese LaTeX style. 项目地址: https://g…

张小明 2025/12/30 11:22:48 网站建设