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