Python 中賦值之前引用的區域性變數
Muhammad Waiz Khan
2021年4月29日
本教程將說明為什麼會發生錯誤 local variable referenced before assignment
錯誤,以及如何解決該錯誤。
在函式體內在賦值之前引用了某個變數時,就會發生 local variable referenced before assignment
。該錯誤通常在程式碼嘗試訪問全域性變數時發生。由於全域性變數具有全域性範圍,並且可以從程式中的任何位置進行訪問,因此使用者通常會嘗試在函式中使用全域性變數。
在 Python 中,我們不必在使用變數之前宣告或初始化該變數。預設情況下,始終將變數視為本地變數。因此,當程式嘗試訪問函式中的全域性變數而未將其指定為全域性變數時,程式碼將返回賦值之前引用的區域性變數
錯誤,因為被引用的變數被視為區域性變數。
Python 中 local variable referenced before assignment
錯誤的解決方案
我們可以在 Python 中使用 global
關鍵字將變數宣告為全域性變數。一旦將變數宣告為全域性變數,程式就可以訪問函式中的變數,並且不會發生任何錯誤。
下面的示例程式碼演示了程式最終將出現 local variable referenced before assignment
錯誤的程式碼情況。
count = 10
def myfunc():
count = count + 1
print(count)
myfunc()
輸出:
UnboundLocalError: local variable 'count' referenced before assignment
我們需要使用 global
關鍵字將 count
變數宣告為全域性變數,以解決此錯誤。下面的示例程式碼演示瞭如何在上述程式碼方案中使用 global
關鍵字解決錯誤。
count = 10
def myfunc():
global count
count = count + 1
print(count)
myfunc()
輸出:
11