这是否可以忽略。我正在收到如下所述的警告。我的代码将如何成功?无论原因如何,我必须在全局范围内的程序中使用此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 =====
答案 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)
您的代码片段会指示此情况,因为您错过了额外的缩进。您可能故意省略了它,但也省略了有关它周围的代码的任何信息(例如,如果它放在一个函数中),您的代码并没有多大意义。