一、采用general import的方法
这方法也是官方文件中FAQ中给出的方法。
- Python import 包的机制是import进来的和系统的module都放在sys.module这个字典里面
多个py文件在import的时候,会先去sys.module里面检查是否已经import了,如果已经import了,就不再重复import,否则就import进来。 -
from aaa.yyy import x则不一样,test.py中这样from import,此时x就是test自己命名空间中的变量。所以x只在test.py中有效,无论如何对x修改,都无法影响yyy中的x。
例如:
config.py:
x = 0
mod.py:
import config
config.x = 1
main.py:
import config
import mod
print config.x
这种方法应该也是被大家所使用最多的一种方法。
这里一定要注意要用潜拷贝,不能直接import *种,要保持同样的空间名称。
二、采用import + whole init()的方法
这种方法也是首先定义一个文件
setting.py
def init():
global x
x = 0
subfile.py
import setting
def stuff():
setting.x = 1
在main.py中初始化全局变量
import setting
import subfile
setting.init()
subfile.stuff()
print(setting.x)