簡體   English   中英

關於 Python 全局變量聲明的警告

[英]Warning on Python global variable declaration

這是可以忽略的。 我收到如下所述的警告。 我的代碼將如何成功? 無論ignoreList何種原因,我都必須在全局范圍內的程序中使用這個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 SyntaxWarning:名稱 'ignoreList' 在全局聲明之前使用

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

如果沒有更多上下文,您的代碼片段沒有多大意義。 為了更好地理解關鍵字,請查看: 在 Python 中使用“全局”關鍵字

至於您的代碼,它使變量僅在發生錯誤后在全局范圍內可用,這是不尋常的。 正如警告所示,您將/應該從一開始ignoreList變量ignoreList定義為一個全局變量以消除錯誤。 問題是為什么你只在代碼一開始就遇到錯誤時才公開它。

此外,如果您沒有將它包含在某種函數或其他封裝中,則global關鍵字不會執行任何 int hat 上下文。

作為您需要使用 global 以在另一個范圍內公開變量的場景的示例:

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

一個沒有意義的例子,因為只有一個范圍開始:

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

您的代碼片段會指出這種情況,因為您缺少額外的縮進。 您可能有意省略了它,但同時也省略了有關圍繞它的代碼的任何信息(例如,如果它被放置在一個函數中),您的代碼就沒有多大意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM