Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【python3】python local variable 'hoge' referenced before assignment nonlocalってエラーが出た

python local variable 'hoge' referenced before assignment nonlocal

ってエラーが出て詰まった・・・・

■ 参考 : UnboundLocalErrorについて考察してみた


global変数とlocal変数の違いでエラーが起こっているのかと思ってコードとにらめっこして該当箇所を探したが
自分のコードの原因はもっと単純やった・・・

1. 関数の中でhogeが返り値になってる
return hoge
2. 関数の中でif分岐があって、片方の分岐に入らないとhogeが定義されていない
3. return hogeとすると「hogeがないよ」ってエラーが出てた

なので、if分岐がONになるときはエラーが起こらず
if分岐に入らないときはエラーが起こってた

1時間くらいかかったわ・・・
ひとまず、自分のpythonのglobalとlocal変数への理解は正しいことは確認できた

globalはなんとなくわかるけど、nonlocalってのもあるらしい
違いはわからん
必要ならまた調べる



面白そうな記事があったのでメモ

■ 参考 : 他の言語に慣れた人がPythonを使ったときにつまずきがちな10のポイント

ランキング参加中です

↓クリックしていただけると嬉しいです〜