【问题标题】:Global Variables - Python全局变量 - Python
【发布时间】:2014-03-19 20:23:14
【问题描述】:
我又遇到了全局变量问题。我将把我的代码放到一个小例子中。我在函数 1 中分配了一个名为 var1 的变量。现在我想在函数 2 中调用该变量,然后打印函数 2 的结果
如果我使用这段代码,我会得到一个 var1 未定义。
def function1():
global var1
var1 = 'Hello'
def function2():
return var1
print function2()
我该如何解决这个问题?
【问题讨论】:
标签:
python
function
variables
global
【解决方案1】:
您实际上需要先致电function1()。
global 关键字仅告诉 Python当您调用函数时,对 var1 的任何赋值都应该是全局名称,而不是本地名称。但这不会神奇地使var1 出现,直到您实际执行该分配。在您调用function1 之前,没有全局var1。
Python 没有声明;名称要么绑定,要么不绑定。
演示:
>>> def function1():
... global var1
... var1 = 'Hello'
...
>>> def function2():
... return var1
...
>>> function2()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in function2
NameError: global name 'var1' is not defined
>>> function1()
>>> function2()
'Hello'
【解决方案2】:
如果你想在function2() 中创建global var1,你应该调用function1in function2。这样做var1 变得可见并且可以在function2 中返回:
>>>def function2():
... function1()
... return var1