繁体   English   中英

全局变量-Python

[英]Global Variables - Python

我在使用全局变量时遇到了麻烦。 我将代码放入一个小示例中。 我在function1中分配了一个名为var1的变量。 现在我想在函数2中调用该变量,然后打印函数2的结果

如果使用此代码,则会得到未定义的var1。

def function1():
    global var1
    var1 = 'Hello'

def function2():
    return var1


print function2()

我该如何解决?

您需要首先实际调用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'

如果你想使global var1function2()你应该调用function1function2 这样做var1变得可见并且可以在function2返回:

 >>>def function2():
 ...    function1()
 ...    return var1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM