全局变量和导入

时间:2018-02-13 00:28:58

标签: python

让我们考虑一个名为test1.py的文件,其中包含以下代码:

def init_foo():
    global foo 
    foo=10

让我们考虑另一个名为test2.py的文件,其中包含以下内容:

import test1

test1.init_foo()
print(foo)

如果test1在python路径上(并且正确导入),我现在会收到以下错误消息:

NameError: name 'foo' is not defined

任何人都可以向我解释为什么变量foo在运行时global范围内未被声明为test2.py?此外,如果您可以为该问题提供解决方法吗?

THX!

2 个答案:

答案 0 :(得分:0)

为什么要使用全球?回来吧

test1.py

def init_foo():
    foo = 10
    return foo

test2.py

foo = test1.init_foo()
print(foo)

答案 1 :(得分:0)

test2.py中,执行print(test1.foo)代替print(foo),它会起作用。