gpt4 book ai didi

python import 有共同的值(value)观吗?

转载 作者:行者123 更新时间:2023-11-30 23:15:03 26 4
gpt4 key购买 nike

可能听起来像初学者,但就是这样。

我正在导入一个 Typedef 脚本,其中包含在整个程序中使用和调用的变量。我只需在包/工作区中的所有脚本上调用'import Typedef'即可实现此目的。

现在,我通过调用以下命令更改其中一个脚本中 Typedef 中的变量:

Typedef.myVariable = newVariable

如果其他脚本引用此变量,此更改是否会反射(reflect)出来?

如果不是,我应该做什么来纠正这个问题?

如果有帮助的话,我正在使用 Python 3.4,使用 Anaconda 的 Spyder 进行编码。

最佳答案

是的,正如评论中所说。

你只需要关心像这样的结构

from TypeDef import myvariable - 在这种情况下,myvariable 是一个新名称在导入时指向变量的值,并且不会“看到”对 TypeDef.myvariable 的新值的更新。

一旦您为本地命名空间(或“全局”命名空间 - 在 Python 中,全局变量实际上是“模块局部变量”)中的对象分配名称,该名称就指向该特定对象。

请谨慎使用,并确保在您的项目中记录此类用法。这是 Python 中最常使用的,而不是静态语言中所需的“单例”。

此外,该技术还可用于更改其他模块中的实际函数或类 - 这就是所谓的“猴子修补”。 (一般来说,对于生产代码来说不好 - 另一方面对于测试代码来说却很出色,您可以在其中使用模拟对象来猴子修补正在测试的函数的依赖关系)

关于python import 有共同的值(value)观吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28456105/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com