发生这种情况是因为您使用的是不可变值(int和None),并且导入变量就像按值传递事物,而不是按引用传递事物。
如果制作了global_mod.xa列表并操纵了它的第一个元素,则它将按预期工作。
完成后
from global_mod importx,您将
x在模块中创建一个名称,该名称的值与
xin中的值相同
global_mod。对于函数和类之类的东西,这可以按您期望的那样工作,因为人们(通常)以后不会重新分配这些名称。
正如Alex所指出的,如果您使用
importglobal_mod,然后使用,则
global_mod.x可以避免该问题。您在模块中定义的名称将为
global_mod,它始终指向您想要的模块,然后使用属性访问获取at
x将会为您提供最新值
x。



