我遇到了从另一个模块更新一个模块中的变量的问题。我会用最简单的方式把它。
params= { "name" : "system_user" }
import myapp.mymod
myapp.mymod.params={}
但是, mymod.py 保持不变。
说我试试,
myapp.mymod.params["name"]="oracle"
即使这样,原始的.py文件也保持不变。 是否有任何完全来实现这一目标?
更新:发布问题后,我意识到该功能可能有多恶,如果存在的话。
所以我将重新构思我的问题并请求相同的建议。我需要更新python模块变量数据,以便另一个模块能够访问刷新的数据。
我想到的一个解决方案是添加一个静态属性文件,用于重新刷新python模块中的所有字典数据。 谢谢, Shoubhik
答案 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
{}