本文最后更新于2018-6-20,可能会因为没有更新而失效。如已失效或需要修正,请联系我!
今天在用Python写程序时突然想起了Python变量作用域的问题,代码如下:
def run():
global x
x=3
print(x)
run()
x+=1
print(x)
这段代码运行并不会出错,问题的关键主要在于global这个关键字,stackoverflow上有人问过类似的问题,url
主要的意思是在一个函数里如果把一个变量声明为global,那么这个变量就是全局的,
如果全局变量中不存在这个变量,那就新建一个全局变量。
然后我就写了另外一段有意思的代码:
#main.py
import main2
main2.first()
main2.then()
#main2.py
def first():
global x
x=0
print(x)
def then():
global x
x+=1
print(x)
这是在2个文件里的Python代码,可以正确运行。
这段代码的意思是Python的global声明的最大作用域是当前文件,并不能用其他文件里的全局变量。
在上面的代码中x的作用域是main2整个文件,而在main里是没有x这个变量存在的!
本文探讨了Python中全局变量的使用及作用域规则,通过具体代码示例解释了global关键字的功能,包括在函数内部修改全局变量和跨文件作用域限制。
1401

被折叠的 条评论
为什么被折叠?



