Python

【エラー解決】Pythonでreferenced before assignment

referenced before assignment

原因

「local variable ‘xxx’ referenced before assignment」このようなエラーが出た場合の原因としては変数:xxxが定義される前に参照されてる場合に発生します。

エラー例:

print(xxx) #xxxが定義される前に参照している

xxx = 2

以下のような場合でもエラーになります。

例え、同じ変数名であったとしてもスコープが違う場合は異なる変数として扱われるのでエラーとなります

def test():
 print(xxx)
 xxx = 10 #ローカル変数

xxx = 1 #グローバル変数
test()

 

対応策

✅参照される前に対象の変数を定義する

xxx = 2 #参照前に定義する
print(xxx) 
def test():
 xxx = 10 #ローカル変数 先に定義する
 print(xxx)
 

xxx = 1 #グローバル変数
test()


##出力##
10