Python:不同模块中的变量不会被更改

时间:2013-09-17 13:35:31

标签: python django module

我遇到了从另一个模块更新一个模块中的变量的问题。我会用最简单的方式把它。

mymod.py

params= { "name" : "system_user" }

config.py

import myapp.mymod

myapp.mymod.params={}

但是, mymod.py 保持不变。

说我试试,

myapp.mymod.params["name"]="oracle"

即使这样,原始的.py文件也保持不变。 是否有任何完全来实现这一目标?

更新:发布问题后,我意识到该功能可能有多恶,如果存在的话。

所以我将重新构思我的问题并请求相同的建议。我需要更新python模块变量数据,以便另一个模块能够访问刷新的数据。

我想到的一个解决方案是添加一个静态属性文件,用于重新刷新python模块中的所有字典数据。 谢谢, Shoubhik

1 个答案:

答案 0 :(得分:3)

您正在为“params”名称指定一个新值,但对原始字典的任何现有引用都将保持不变。

myapp.mymod.params.clear()可能会更新所有其他引用,因为它不会将新值重新分配给“params”名称,而是更改它。

E.g。

>>> x = {"foo":"bar"}
>>> a = x
>>> x = {}
>>> print a
{'foo': 'bar'}

>>> x = {"foo": "bar"}
>>> a = x
>>> x.clear()
>>> print a
{}