7

我试图在某些函数中声明一些全局变量并将带有这些函数的文件导入另一个。但是,我发现在第二个文件中运行该函数不会创建全局变量。我尝试创建另一个具有相同名称的变量,但是当我打印出变量时,它会打印出第二个文件的值,而不是全局值

全局变量.py

def default():
    global value
    value = 1

主文件

from globals import *
value = 0
def main():
    default()
    print value

if __name__=='__main__':
    main()

这将打印 0。如果我value = 0在 main 中没有,程序将出错(未定义值)。

如果我valueglobals.py函数外部声明,main.py将采用 global 的值value,而不是设置的值default()

value在python中成为全局变量的正确方法是什么?

4

1 回答 1

5

Python 中的全局变量仅对它们的模块是全局的。没有可以修改的名称对整个过程是全局的。

你可以用这个来完成你想要的:

全局.py:

value = 0
def default():
    global value
    value = 1

主要.py:

import globals
def main():
    globals.default()
    print globals.value

if __name__ == "__main__":
    main()

不过,我不知道这样的全局变量是否是解决您的问题的最佳方法。

于 2013-03-24T05:17:07.207 回答