Python跨文件模块变量修改

2024-03-28 13:28:42 发布

您现在位置: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


Tags: 模块pyimportprint
1条回答
网友
1楼 · 发布于 2024-03-28 13:28:42

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

 $ python B.py

这将创建一个python进程,加载B.py,然后A.py,并修改与模块A的名称空间相对应的字典。然后进程将结束,丢失所有未写入磁盘的内容

$ python C.py

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

相关问题 更多 >