我试图通过导入变量并在函数内本地修改变量来跨模块使用全局变量。代码和输出如下。最后一个输出不是我预期的,我认为它应该是15,因为它已经被func3在全局范围内修改过了。任何人都可以解释为什么最后的输出仍然是10。
谢谢!
test2.py
myGlobal = 5
def func3():
global myGlobal
myGlobal = 15
print "from 3: ", myGlobal
test1.py
from test2 import myGlobal, func3
def func1():
global myGlobal
myGlobal = 10
def func2():
print "from 2: ", myGlobal
print "init: ", myGlobal
func1()
func2()
func3()
func2()
输出:
init: 5
from 2: 10
from 3: 15
from 2: 10
答案 0 :(得分:0)
如评论中所述,Python中的global
表示模块级别。
这样做:
a = 1
对a
具有完全相同的效果:
def f():
global a
a = 1
f()
在这两种情况下,变量不会在模块之间共享。
如果要跨模块共享变量,请选中this。