更改从另一个文件导入的 var 的值,而不影响运行时内存中的原始值

Changing the value of a var imported from another file, without affecting the original values in runtime memory

提问人:OhItsTom 提问时间:7/16/2022 最后编辑:OhItsTom 更新时间:7/16/2022 访问量:57

问:

所以,我有两个文件; utils.py 和 globals.py。

globals.py 其中包含一些变量,core.py 有一个 install() 函数。

在这个函数中,我需要修改 globals.py 变量,但不直接影响保存在 globals.py 中的值。

我需要一种方法来保持代码不变,以便它仍然使用 globals.var,但仅当 edition 为 True 时才更改当前函数的 var 内容。

下面的代码不能以我想要的方式工作,但是一个很好的做法

globals.py

spotify = "original_url"

core.py

import globals
async def install(edition=False):
  if edition:
    globals.spotify = "new_url"

utils.chunked_download(globals.spotify)

other.py(安装后运行)

import globals
# Now that the install has been run with edition=True, these globals are now changed for all scripts
print(globals.spotify)

returns new_url instead of original_url

下面的代码以我想要的方式工作,但这是不好的做法

core.py

from globals import *
async def install(edition=False):
  if edition:
    spotify = "new_url"

utils.chunked_download(spotify)

other.py(安装后运行)

import globals
print(globals.spotify)

Returns the original value "original_url" like i want

Python 变量 作用域 命名空间

评论

2赞 ndc85430 7/16/2022
当你说你想修改变量“全局,但在函数中自包含”时,我不太确定你的意思。你能澄清一下吗?
0赞 OhItsTom 7/16/2022
我想我已经以一种更有意义的方式更新了它,并为我需要实现的目标提供了一个“工作”示例。

答: 暂无答案