千家信息网

python修改全局变量不加global的方法

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇"python修改全局变量不加global的方法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2025年01月24日python修改全局变量不加global的方法

这篇"python修改全局变量不加global的方法"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"python修改全局变量不加global的方法"文章吧。

以如下代码为例,我们在局部作用域内使用全局变量a,需要使用global关键字进行声明。否则代码会不可用。

a = 100def fun():    global a    a += 100    fun()print(a)

但是也有一种常见的情况,

可以修改的数据类型在函数内部做修改操作是不需要声明global的:

list1 = [100, 200]def fun():    list1.append(300)fun()print(list1)

但是如果把添加元素的命令换成列表拼接的方式:

list1 += list1 + [300]

则代码依然不可用,需要添加关键字global声明list1才可用。

进一步展开说:

list1 = [100, 200]print(list1, id(list1))list1 = list1 + [300]print(list1, id(list1))list1 += [400]print(list1, id(list1))list1.append(500)print(list1, id(list1))

对于list1 = list1 + [300]
如图,list1 = list1 + [300]改变了list1的id,这意味着,得到的新的list1已经不是原来的list1变的,而是重新生成的,也可以理解成是重新赋值的list1,只是过程中利用了list1。该代码在局部作用域没有global不可用,因为在生成新的变量之前, list1 + [300] 中的list1是取不到的。

list1 += [400],list1.append(500)都不改变id,改变的是原变量list1。
但是list1 += [400]无global不可用,原因同上述情况一样;
list1.append(500)则无global也可用,符合 可用修改的数据类型在函数内部的修改操作不需声明global。

以上就是关于"python修改全局变量不加global的方法"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

变量 内容 全局 代码 方法 作用 关键 关键字 函数 局部 情况 数据 文章 知识 篇文章 类型 生成 价值 元素 原因 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江夏定制软件开发公司 保定网络技术市场报价 游戏网络技术发展趋势 网络安全宣传周心得小学生 软件开发工作表扬信 如何提高网络安全意识工作 热血江湖手游提示服务器繁忙 网络安全做到理论与实践相结合 喀什网络安全宣传活动 我国制定网络安全法目的为了什么 首席网络安全官职责 标准 漳平专业软件开发价格 2018网络安全作业平台 博客写互联网科技 软件开发款 首都网络安全活动日 优质产品数据库 创建图书馆借阅系统数据库 西安市软件开发哪里好找 全国网络技术挑战赛 数据库原理与应用高职教材 铁路网络安全应急预案 开料软件开发 委托软件开发软件源码归属 目标数据库管理的主要功能 国家的网络安全宣传周是什么时候 通达信高级行情服务器怎么操作 高考数据库综合题 网络技术与文化形态的演变 交通银行软件开发中心主要做什么
0