当前位置: 首页 > news >正文

global在外层函数和内层函数中的使用,通过定义全局变量在不同层级的函数中进行修改变量的值,在双层闭包函数中的应用

global在外层函数定义了全局变量后,在内层函数中进行使用的时候,也需要首先再次定义一下该变量,然后再进行变量值的修改。
不然python会认为你这是在创建一个新的局部变量。Python 的变量作用域规则:如果你在函数内赋值一个变量,Python 会认为你是定义了该函数的局部变量。
如果你想要修改全局变量 var,你必须在 inner 函数中使用 global var 来声明它为全局变量。
解决方案:
在 inner 函数中使用 global var 声明它是全局变量,这样 Python 就不会认为你是在创建一个新的局部变量,而是修改全局的 var。
修改后的代码:def closure_func_global(num):global var  # 使用 global 使得 var 成为全局变量var = num + 3  # var 被定义为全局变量def inner():global var  # 在 inner 函数中声明 var 为全局变量print("在inner()内部之前, var = {}".format(var))  # 使用全局变量 varvar = 2  # 修改全局 varprint("在inner()内部之后, var = {}".format(var))  # 打印修改后的 varreturn inner
代码解释:
在 inner 函数中加上了 global var,这告诉 Python 在 inner 函数内访问和修改的是全局变量 var,而不是创建一个新的局部变量。
这样 inner 函数中的 var = 2 就会修改全局变量 var,而不会报错。
执行过程:closure = closure_func_global(5)  # 调用 closure_func_global,num 为 5
closure()  # 执行 inner 函数
输出:
在inner()内部之前, var = 8
在inner()内部之后, var = 2
总结:
关键问题:在 inner 函数中对 var 赋值时,Python 默认认为 var 是一个局部变量。为了避免这种情况,必须使用 global var 来明确表示修改的是全局变量。
http://www.sczhlp.com/news/58158/

相关文章:

  • 如何在处理不同语言的字符串时,确保对齐的准确性?
  • 字符串对齐方法(`ljust()`、`rjust()`、`center()`、`zfill()`)
  • 定制型网站怎么做高端网站建设多少钱
  • 网络宣传渠道有哪些河南网站推广优化多少钱
  • 丽江网站制作公司wordpress 头像上传路径
  • 网站开发专业培训成都山而网站建设公司
  • 建设银行网站怎么交学费提供温州手机网站制作哪家好
  • 网站取消301后网页游戏大全小游戏
  • 网站制作流程视频教程app开发公司怎么收费
  • 网站使用授权书青岛响应式网站开发
  • 图书馆网站建设报告wordpress 数字交易
  • 网站数据库如何备份国际设计网站有哪些
  • 异步电机直接转矩控制的simulink仿真
  • 割点割边和tarjan
  • Django序列化的一些经验
  • Go语言安全防护:守护你的代码安全
  • Git功能使用
  • 模板王网站官网港北网站建设
  • 手机网站设计小程序秦皇岛市第一中学
  • 为网站添加统计网络营销公司有哪些公司
  • tp做网站网站对联广告素材
  • 深圳网站建设网页制作云计算 网站建设
  • 喜讯!华清远见参与制定的《电子产品印制电路板可制造性设计(DFM)和可靠性设计规范》正式发布
  • 2025/7/28周末总结
  • 【品牌推荐】内外网文件摆渡系统推荐用哪个产品比较好?
  • 免费无广告建站wordpress安装插件无法创建目录
  • 企业建网站的少了正邦logo设计
  • 什么软件可以看网站wordpress出现两个首页
  • 安徽做网站的公司有哪些想接网站自己做
  • 淘宝上的网站怎么做外贸软件下载