0

我在从另一个模块更新一个模块中的变量时遇到问题。我会用最简单的方式来表达。

我的mod.py

params= { "name" : "system_user" }

配置文件

import myapp.mymod

myapp.mymod.params={}

但是,mymod.py保持不变。

说如果我尝试,

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

即使这样,原始 .py 文件也保持不变。有什么办法可以实现吗?

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

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

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

4

1 回答 1

3

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

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

例如

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

相对

>>> x = {"foo": "bar"}
>>> a = x
>>> x.clear()
>>> print a
{}
于 2013-09-17T13:41:39.517 回答