Python Cross文件模块变量修改

时间:2019-05-02 11:16:03

标签: python python-3.x

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中?

1 个答案:

答案 0 :(得分:1)

Python脚本在具有单独进程,内存,命名空间等的单独shell中运行。在脚本中修改模块属性是内存中操作:它不会影响从中加载模块的文件:

new azureDataLakeStore.DataLakeStoreFileSystemClient

这将创建一个python进程,先加载client.fileSystem.create,然后加载 $ python B.py ,然后修改与模块B.py的命名空间相对应的字典。然后该过程将结束,丢失所有您未写入磁盘的内容。

A.py

这将创建一个python进程,先加载A,然后加载$ python C.py ,然后从新读入的模块C.py的字典中打印新加载的值。这将是文件A.py中的所有内容。