听起来像是初学者,但现在开始。你知道吗
我正在导入一个Typedef
脚本,其中包含在整个程序中使用和调用的变量。我只需对包/工作区中的所有脚本调用'import Typedef'
。你知道吗
现在我通过调用Typedef
中的一个脚本来更改变量:
Typedef.myVariable = newVariable
如果其他脚本引用此变量,是否会反映此更改?你知道吗
如果没有,我应该怎么做来纠正这个问题?你知道吗
如果有帮助的话,我将使用python3.4,使用Anaconda的Spyder进行编码。你知道吗
Tags:
是的,因为
Typedef
模块中的变量在模块作用域中,该作用域在导入该模块的任何地方都可用。你知道吗进一步阅读,请看Python Scopes and Namespaces。你知道吗
是的,正如评论中所说。你知道吗
你只需要处理好
from TypeDef import myvariable
-在这种情况下,myvariable是一个新名称 在导入时指向变量的值,并且不会“看到”对TypeDef.myvariable
的新值的更新。你知道吗一旦在本地名称空间(或“全局”名称空间-在Python中,globals实际上是“模块局部变量”)中为一个对象指定了一个名称,该名称就指向那个特定的对象。你知道吗
小心地使用它,并确保在项目中记录这种用法。这是Python中主要使用的内容,而不是静态语言中需要的“单例”。你知道吗
此外,该技术还可以用于实际更改其他模块中的函数或类,这就是所谓的“Monkey patching”。(一般来说,对于生产代码不太好,而对于测试代码则很好,在测试代码时,您可以使用模拟对象来修补被测试函数的依赖关系)
相关问题 更多 >
编程相关推荐