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

2024-04-20 14:40:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在从一个模块更新另一个模块中的变量时遇到问题。我会用最简单的方式说。你知道吗

你知道吗mymod.py公司你知道吗

params= { "name" : "system_user" }

你知道吗配置.py你知道吗

import myapp.mymod

myapp.mymod.params={}

然而,mymod.py公司保持不变。你知道吗

如果我尝试

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

即使这样,原始的.py文件仍然保持不变。 有什么办法可以达到这个目的吗?你知道吗

更新:在发布问题之后,我马上意识到,如果这个功能存在的话,它有多邪恶。你知道吗

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

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


Tags: 模块文件数据namepyimport方式公司
1条回答
网友
1楼 · 发布于 2024-04-20 14:40:10

您正在为“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
{}

相关问题 更多 >