1
我很困惑,如果你将模块作为单例使用,会发生什么。导入如何用作单例使用的模块?
说我有一个模块conf.py,其中包含一些配置参数,需要由多个其他文件访问。在conf.py,我可能有这样的一段代码(没有别的):
myOption = 'foo' + 'bar'
如果我现在在a.py先导入它,然后在b.py,我的理解是,第一次它被导入(在a.py中),字符串连接将被执行。但是第二次导入时(在b.py中),conf.myOption已经有了它的值,所以不会执行字符串连接。它是否正确?
如果做这两个进口后,我再执行在b.py
conf.myOption = 'aDifferentFoobar'
以下则显然b.py现在会看到这个新的价值。 a.py会看到相同的值,还是会看到'foobar'?
我相信(但纠正我,如果我错了),进口总是引用参考,而不是价值?我猜这就是以上问题归结到的。
好问题,但没有你试试吧;) – 2014-10-09 09:53:10
好点,但我还是有点担心可能有角的情况下是不明显... – funklute 2014-10-09 10:20:02