在config.py中,我有:
config = 0
#config = []
def init_config():
global config
config = 1
#config.append("1")
print("init", config)
在main.py中,我有:
from config import init_config
from config import config
def main():
init_config()
print("main", config)
if __name__ == '__main__':
main()
并且config.py和main.py都位于同一目录中。运行python main.py
之后,我得到了:
init 1
main 0
但是,如果我改用config.py中的注释行,则会得到:
init ['1']
main ['1']
那为什么会发生差异呢? (Python 3.5.5)
答案 0 :(得分:1)
从config.py
导入后,变量config
成为config.config
的单独副本,位于main.py
的命名空间中。您应该将import config
作为模块,然后将变量config
作为模块config
的属性来访问:
import config
def main():
config.init_config()
print("main", config.config)
if __name__ == '__main__':
main()