如何在python中更新全局变量?

时间:2017-05-19 12:26:52

标签: python

我在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"。

出了什么问题?

3 个答案:

答案 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更新时不会更新。