模块间的全局变量

Global variables between modules

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

我有 2 个文件:

file2.py:

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

main.py:

from file2 import *

def main():
    print(justTry)

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

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

当“*导入”某些东西时,它会执行代码,并将全局变量复制到您的全局变量中。但如果稍后更改了全局变量,它不会重新复制全局变量。解决方案是,在调用测试后重新导入文件

file2.py:

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

main.py:

from file2 import *

def main():
    print(justTry)

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