x = 2 def fun1(): print(x,end = '\t') def fun2(): global x x += 1 print(x,end = '\t') fun1() fun2() print(x,end = '')
此处为全局变量
def addone(a): # a为形参 a += 1 print(a) a = 3 addone(a) print(a)
此处为形参
这两段代码差不多,但是如果将global注释掉,第一段代码就会报错,有大佬讲一下吗
形参就是局部变量,但局部变量不一定是形参,在函数内部定义的变量(包括形参)就是局部变量;
global关键字定义的变量就是全局变量,可以共享数据。
global关键字的意思是引用上一层的变量,如果你注释global就变成了一个单独的x,global的中文释义是全局、全球(反恐精英:全球攻势CSGO英文名里的G就是Global),这个问题和形不形参无关
题主的问题和形参没啥关系,重点在于函数fun1可以不用global而函数fun2则不用不行。在函数体内,如果没有没有改变全局变量,则不需要使用global声明,如果有改变全局变量的操作,则必须要在引用之前使用global声明。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632