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
中?
答案 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
中的所有内容。