コンテンツへスキップ
Python例外エラー
UnboundLocalError

UnboundLocalError

ローカル変数に値が代入される前に参照されました。

python

このエラーの原因

同一関数内で変数に代入する前に読み取ろうとしています。Python は代入を検出するとその変数を関数全体でローカル扱いにするため、代入前の読み取りが失敗します。グローバル変数を global キーワードなしで変更しようとした場合によく発生します。

修正方法

グローバル変数を参照するには global キーワードを使用してください: global x。囲みスコープの変数には nonlocal を使用してください。変数を読み取る前に代入するようコードを再構成してください。値を関数の引数として渡す方法も有効です。

例

x = 10
def f(): print(x); x = 20
f()  # UnboundLocalError
公式ドキュメント

関連するエラーコード