Python3:多个全局变量

时间:2014-12-13 02:13:27

标签: python-3.x

我正在使用全局变量,但我收到错误" NameError:name' second_global_var'未定义"

def my_function():
    global first_global_var, second_global_var
    if(first_global_var or second_global_var):
        pass

为什么它会显示' second_global_var'的错误而且对于' first_global_var',即使我将每个人用自己的行定义为全局,错误仍然存​​在于变量' second_global_var'。

2 个答案:

答案 0 :(得分:1)

global语句不会创建变量。它只是让Python在全局命名空间而不是本地命名空间中查找它们。换句话说,只要您尝试引用global some_namesome_name就会告诉Python查找名为some_name的全局变量。

如果尝试使用该变量时该变量不存在,Python将引发NameError

答案 1 :(得分:0)

在翻译中,你有:

   >>> def my_function():
    ...     global first_global_var, second_global_var
    ...     if(first_global_var or second_global_var):
    ...         pass
    ... 

然后调用函数:

>>> my_function()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in my_function
NameError: global name 'first_global_var' is not defined

它抱怨第一个未定义的变量。