a.py :
X = 10
b.py :
import A
A.X = 100
c.py :
import A
Print("A.X = ",A.X)
如果我执行B
,然后执行C
,则获得A.X = 10
。但是,模块B
在X
上所做的更改呢?为什么更改在模块C
中没有反映?
python脚本在单独的外壳中运行,并带有单独的进程,记忆,名称空间等。修改脚本中的模块属性是一个内存操作:它不会影响模块的文件从:
加载 $ python B.py
这将创建一个Python过程,加载B.py
,然后创建A.py
,并修改与模块A
命名空间相对应的字典。然后,该过程将结束,失去您没有写入磁盘的任何内容。
$ python C.py
这将创建一个Python过程,加载C.py
,然后创建A.py
,并从新读取的模块A
的字典中打印新鲜加载的值。这将是文件A.py
中的任何内容。