こんな、プログラムを書いてみた。
#!/usr/bin/env python Mode = 0 def set_mode(new_mode): Mode = new_mode def get_mode(): return Mode set_mode(1) print get_mode()
実行結果は、
0
このようなコードの書き方では、各関数内の、 "Mode"はローカル変数として扱われるようだ。
グローバル変数として扱うためには、以下の様に各関数内にグローバル宣言を記述する必要がある。
#!/usr/bin/env python Mode = 0 def set_mode(new_mode): global Mode Mode = new_mode def get_mode(): return Mode set_mode(1) print get_mode()
結果は期待通り
1
になった。
ちなみに、以下のような記述ではエラーが発生するので要注意。
def set_mode(new_mode): global Mode = new_mode
global Mode = new_mode
^
SyntaxError: invalid syntax