python 多模块文件共享变量

Python import 包的机制是,import进来的和默认的系统的module了,都放在sys.module这个字典里面.
多个py文件再次import的时候,会先去sys.module里面检查是否已经import了,若是已经import了,就再也不重复import,不然就import进来python

===spa

import glovar和from comon import glovar的命名空间是同样的,key都是glovarcode

from common.glovar import x 则不同,test.py中这样from import,就至关于在test.py文件中写了一行代码x = 1,
此时x就是test本身命名空间中的变量。因此x只在test.py中有效,无聊本身如何对x修改,都没法影响glovar 中的xclass

#换种说法
from glovar import x
#等同于
improt glovar
x= glovar.x
#你调用x的时候,就是本身的命名空间中的x
#当你执行x=2时,彻底影响不到glovar.x

下面是解释test

#引入当前glovar文件,此时namespace是glovar
import glovar

#从common目录中引入glovar,此时namespace是glovar
from comon import glovar

#从common目录中的glovar文件中引入x=1,此时namespace就是引用者,也就是上面的test.py
from common.glovar import x

因此,若是须要共享变量,就不要使用from file import x这种形式,而是使用import file,而后就能够经过file.x来使用,而后file.x='abc'能够进行修改。这样都这样处理全局性的变量就能够共享的。也就是保持一个独立的namespace,这样python不会再次导入,从而实现共享。import

做者:coreki连接:http://www.jianshu.com/p/4bb742d7d672來源:简书著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
相关文章
相关标签/搜索