关于Python全局变量声明的警告

时间:2017-01-18 07:09:41

标签: python environment-variables

这是否可以忽略。我正在收到如下所述的警告。我的代码将如何成功?无论原因如何,我必须在全局范围内的程序中使用此ignoreList变量。而且我也不知道它为什么不打印else:块打印语句。

try:
    ignoreList
except NameError:
    global ignoreList
else:
    print 'If property of ignoreList is not set, then please adjust properties to be set for ignoreList'    

这是在python IDLE

中执行程序时的警告
  

警告(来自警告模块):文件   “C:\ Users \ Sathasivam_Anand \ Documents \ ignore_list_check.py”,第4行       global ignoreList语法警告:名称'ignoreList'在全局声明之前使用

     

>>> ===== RESTART: C:\Users\Sathasivam_Anand\Documents\ignore_list_check.py =====

1 个答案:

答案 0 :(得分:1)

如果没有更多上下文,您的代码片段就没有多大意义。为了更好地理解关键字,请查看以下内容:Use of “global” keyword in Python

至于你的代码,它使变量仅在错误之后在全局范围内可用,这是不寻常的。正如警告所示,您将/应该从一开始就定义变量ignoreList全局以消除错误。问题是,如果代码在开始时遇到错误,你只会公开它。

此外,如果您没有将其包含在某种功能或其他封装中,则global关键字在上下文中不会执行任何操作。

作为一个场景的示例,您需要使用global才能在另一个范围中公开变量:

def test():
    global a
    a = 10
    return 20
b = test()
print(a,b)

一个例子,它没有意义,因为只有一个范围可以开始:

a = 10
global a
b = 20
print(a,b)

您的代码片段会指示此情况,因为您错过了额外的缩进。您可能故意省略了它,但也省略了有关它周围的代码的任何信息(例如,如果它放在一个函数中),您的代码并没有多大意义。