我正在使用全局变量,但我收到错误" 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'。
答案 0 :(得分:1)
global
语句不会创建变量。它只是让Python在全局命名空间而不是本地命名空间中查找它们。换句话说,只要您尝试引用global some_name
,some_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
它抱怨第一个未定义的变量。