模块之间的全局变量

时间:2021-06-27 14:54:29

标签: python python-3.x global-variables

我一直找不到这个问题对我不起作用的原因,所以我想在这里问一个问题。

我有 2 个文件:

file2.py

def test():
    global justTry
    justTry = "hello"

ma​​in.py

from file2 import *

def main():
    print(justTry)

if __name__ == '__main__':
    test()
    main()

我收到错误消息:NameError: name 'justTry' is not defined。 为什么我不能使用 justTry 变量,我在列表之前的步骤中将其声明为全局变量?

1 个答案:

答案 0 :(得分:3)

当“*importing”某些东西时,它会执行代码,并将全局变量复制到你的全局变量中。但是如果全局变量稍后被改变,它不会重新复制全局变量。解决办法是,调用test后重新导入文件

file2.py

def test():
    global justTry
    justTry = "hello"

ma​​in.py

from file2 import *

def main():
    print(justTry)

if __name__ == '__main__':
    test()
    from file2 import *
    main()