为什么变量值变化

时间:2018-01-06 11:27:20

标签: python python-3.x variables import module

我有文件abcd.py

a=9
def funn():
    print("A")

我导入了两次

>>> import abcd as ss
>>> ss.a
9
>>> import abcd as  qq
>>> qq.a
9

但是当我从a导入的文件中更改ss的值时,qq a的导入文件值会自动更改。

>>> ss.a=4
>>> ss.a
4
>>> qq.a
4

1 个答案:

答案 0 :(得分:3)

Python实际上并没有重新导入已经导入的模块。所以当你这样做时

import abcd as qq

您只是为abcd模块创建了另一个名称,您已将其导入ss。因此ss.aqq.a只是同一整数对象的同义词。

您可能会发现这篇文章很有用:Facts and myths about Python names and values,由SO资深人士Ned Batchelder撰写。