我通过修改主模块中的全局变量来切换程序模式。
这种更改会反映在源自该模块内部的函数调用中,但不会反映在其他模块调用同一函数时。
当函数调用来自外部时,主模块是否在使用旧的/外部的/重复的值?
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
global
关键字在此处无效,因为它位于模块范围。 - Eric