関数の外で定義した変数を、関数の中でいじったら関数外の変数の値も変わると思ってたがそうではないらしい・・・・
関数の外で定義した変数はグローバル変数と呼ばれる
それを関数内で呼び出すときは、
global hoge
みたいな感じで頭にglobalをつければOK
関数の内外で値を共有する方法として一番簡単な方法は、
def func(hoge):
# なんかする
return hoge
で返り値にしてしまう方法
今回はこれではちょっと都合が悪かったのでglobalを使った
--------------
mainのコードとmodule内で共通の変数を使いたい、かつ関数の引数として渡さない方法もあるっぽい
■ 参考 : Pythonで全モジュール共通のグローバル変数を扱う方法
モジュール内で空のmoduleを読み込む
mainのコード内でも同じ空のmoduleを読み込む
モジュールの関数内で、空moduleの変数として定義すればmain関数でもそれを使えるようになる
他にも
■ 参考 : Global変数をmodule間やmainとmoduleの間で共有する方法
というのがあるっぽい