我在sample1.py中声明全局变量,并更新
sample1.py
var = 0
def foo():
global var
var = 10
在sample2.py中我导入了这个全局变量
sample2.py
from sample1 import var
def foo1():
print var
但是,它仍然是印刷" 0"而不是" 10"。如果在sample1.py中打印它,则打印" 10"。
出了什么问题?
答案 0 :(得分:3)
有什么问题,从来没有调用sample1.py中的函数,因为你的变量永远不会被初始化为10
正确的方式
Sample1.py
var = 0
def Function1:
var = 10
Sample2.py
import Sample1
Sample1.Function1()
print(Function1.var)
答案 1 :(得分:0)
因为你没有在foo()
中调用函数sample2.py
,所以当你调用函数0
时,现在只用foo()
声明变量,那么它会更新。
像这样更新sample2.py
,
from sample1 import var,foo
foo()
def foo1():
print var
答案 2 :(得分:0)
实际上,即使你已经调用了函数foo
,它也不会起作用。因为当您使用from sample1 import var
时,您只需获得sample1.var
的副本,但不会真正获得它的指针。因此,sample1.var
更新时不会更新。