2024-03-28 13:28:42 发布
网友
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中
B
C
A.X = 10
X
Python脚本在单独的shell中运行,具有单独的进程、内存、名称空间等。修改脚本中的模块属性是内存中的操作:它不会影响从中加载模块的文件:
$ python B.py
这将创建一个python进程,加载B.py,然后A.py,并修改与模块A的名称空间相对应的字典。然后进程将结束,丢失所有未写入磁盘的内容
B.py
A.py
A
$ python C.py
这将创建一个python进程,加载C.py,然后A.py,并从新读入的模块A的字典中打印新加载的值。这将是文件A.py中的内容
C.py
Python脚本在单独的shell中运行,具有单独的进程、内存、名称空间等。修改脚本中的模块属性是内存中的操作:它不会影响从中加载模块的文件:
这将创建一个python进程,加载
B.py
,然后A.py
,并修改与模块A
的名称空间相对应的字典。然后进程将结束,丢失所有未写入磁盘的内容这将创建一个python进程,加载
C.py
,然后A.py
,并从新读入的模块A
的字典中打印新加载的值。这将是文件A.py
中的内容相关问题 更多 >
编程相关推荐