Python的全局变量的作用域Python的全局变量的作用域(Python global varia

2019-05-12 08:08发布

我试着在一些功能上声明一些全局变量和这些功能合并到其他文件导入。 然而,我发现,在第二个文件运行功能不会造成全局变量。 我试图创建具有相同名称的另一个变量,但是当我打印出来的变量,它打印出的第二个文件的价值,而不是全球价值

globals.py

def default():
    global value
    value = 1

main.py

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

if __name__=='__main__':
    main()

这将打印0.如果我没有value = 0在主,程序将错误(未定义的值)。

如果我宣布valueglobals.py功能之外, main.py将在全球的价值value ,而不是设置的值default()

什么是正确的方式来获得value是Python中的全局变量?

Answer 1:

在Python全局是全球唯一他们的模块。 没有名字,你可以修改是全局性的全过程。

你可以完成你想有什么用:

globals.py:

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

main.py:

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

if __name__ == "__main__":
    main()

我不知道是否像全球,这是解决问题的最佳方式,但。



文章来源: Python global variable scoping