UnboundLocalError: local variable '変数名' referenced before assignment ってエラー
対応としては関数内で global 変数名
とする
↓ 説明
以下のようなコードを実行した場合エラーが出てしまう
>>> hoge = False >>> def foo(): ... hoge = False if hoge else True ... print(hoge) ... >>> foo() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in foo UnboundLocalError: local variable 'hoge' referenced before assignment
上記のコードではfoo
内でhoge
がローカル変数として認識してしまうため、hoge
が初期化されていないのに使用しているためエラーになってしまった
対策
hoge
がローカル変数ではなく、グローバル変数であることを教えてあげればいい
global
キーワードを使用する
>>> hoge = False >>> def foo(): ... global hoge ... hoge = False if hoge else True ... print(hoge) ... >>> foo() True