iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python修改全局变量可以不加global吗?
  • 162
分享到

python修改全局变量可以不加global吗?

2024-04-02 19:04:59 162人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

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

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

a = 100


def 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吗?的文章就介绍到这了,更多相关Python修改全局变量内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python修改全局变量可以不加global吗?

本文链接: https://www.lsjlt.com/news/138769.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python修改全局变量可以不加global吗?
    以如下代码为例,我们在局部作用域内使用全局变量a,需要使用global关键字进行声明。否则代码会不可用。 a = 100 def fun():     global a     ...
    99+
    2022-11-13
  • python修改全局变量不加global的方法
    这篇“python修改全局变量不加global的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python修改全局变量不...
    99+
    2023-06-29
  • 实例讲解Python中global语句下全局变量的值的修改
    Python的全局变量:int string, list, dic(map) 如果存在global就能够修改它的值。而不管这个global是否是存在于if中,也不管这个if是否能够执行到。 但是,如果没有 ...
    99+
    2022-06-04
    语句 实例 全局变量
  • python 全局变量引用与修改
    一、引用使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字。如:输出结果:可以看出,无论是列表还是变量,都是可以直接引用的。二、修改使用到的全局变量,需要在函数中修改的话,就涉及到歧义问题,如:输出结果:可以...
    99+
    2023-01-31
    全局变量 python
  • python如何在一个函数内部修改全局变量
    这篇文章主要介绍python如何在一个函数内部修改全局变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何在一个函数内部修改全局变量函数内部global声明 修改全局变量以上是“p...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作