python导入共享公共值?

2024-06-01 04:24:12 发布

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

听起来像是初学者,但现在开始。你知道吗

我正在导入一个Typedef脚本,其中包含在整个程序中使用和调用的变量。我只需对包/工作区中的所有脚本调用'import Typedef'。你知道吗

现在我通过调用Typedef中的一个脚本来更改变量:

Typedef.myVariable = newVariable

如果其他脚本引用此变量,是否会反映此更改?你知道吗

如果没有,我应该怎么做来纠正这个问题?你知道吗

如果有帮助的话,我将使用python3.4,使用Anaconda的Spyder进行编码。你知道吗


Tags: import程序脚本编码anacondaspyder初学者typedef
2条回答

是的,因为Typedef模块中的变量在模块作用域中,该作用域在导入该模块的任何地方都可用。你知道吗

进一步阅读,请看Python Scopes and Namespaces。你知道吗

是的,正如评论中所说。你知道吗

你只需要处理好

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

一旦在本地名称空间(或“全局”名称空间-在Python中,globals实际上是“模块局部变量”)中为一个对象指定了一个名称,该名称就指向那个特定的对象。你知道吗

小心地使用它,并确保在项目中记录这种用法。这是Python中主要使用的内容,而不是静态语言中需要的“单例”。你知道吗

此外,该技术还可以用于实际更改其他模块中的函数或类,这就是所谓的“Monkey patching”。(一般来说,对于生产代码不太好,而对于测试代码则很好,在测试代码时,您可以使用模拟对象来修补被测试函数的依赖关系)

相关问题 更多 >