Python交叉文件模块变量修改



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。但是,模块BX上所做的更改呢?为什么更改在模块C中没有反映?

python脚本在单独的外壳中运行,并带有单独的进程,记忆,名称空间等。修改脚本中的模块属性是一个内存操作:它不会影响模块的文件从:

加载
 $ python B.py

这将创建一个Python过程,加载B.py,然后创建A.py,并修改与模块A命名空间相对应的字典。然后,该过程将结束,失去您没有写入磁盘的任何内容。

$ python C.py

这将创建一个Python过程,加载C.py,然后创建A.py,并从新读取的模块A的字典中打印新鲜加载的值。这将是文件A.py中的任何内容。

最新更新