メイン モジュールのグローバル値を変更して、プログラム モードを切り替えます。
変更は、そのモジュール内で発生した次の関数呼び出しに反映されますが、他のモジュールが同じ関数を呼び出した場合には反映されません。
関数呼び出しが外部から来るとき、メインモジュールは古い/外部/重複した値を使用していますか?
main_module.py
import second_module
mode = 1
def print_mode():
print 'Mode: ' + str(mode)
if __name__ == "__main__":
print_mode()
mode = 2
print_mode()
second_module.problem()
second_module.py
from main_module import print_mode
def problem():
print_mode()
出力
$ python main_module.py
Mode: 1
Mode: 2
Mode: 1