今日Flask-ngrokというライブラリを使っていてつまづいたので戒めメモ。
Pythonのグローバル変数は関数内で代入できない
num = 0 def num_func (): num = 1 print("num " + x)
このように実行したときにてっきりnum 1
と表示されると思っていましたが、表示されたのはnum 0
でした。
実はPythonのグローバル変数は関数内で参照はできるが、変更はできないらしいです。
困った・・・。と調べていたらありました。
【Python】ローカル変数とグローバル変数 | アルゴリズム雑記
関数内でglobal宣言すれば代入可能
num = 0 def num_func (): global num num = 1 print("num " + x)
関数内で代入したい変数名の前にglobal
と付けて宣言したあとなら関数内で代入可能らしい!
やっぱりこういう基礎的なところすっ飛ばして動くもの作ろうとするとちょいちょいつまづきますね笑
でも真面目に基礎やるのが嫌いなので走りながら勉強します。