我很困惑如果你把一个模块作为一个单体来处理会发生什么
假设我有一个模块conf.py,其中包含一些需要由多个其他文件访问的配置参数。在conf.py中,我可能有以下代码(没有其他代码):
myOption = 'foo' + 'bar'
如果我现在先在a.py中导入它,然后在b.py中导入它,我的理解是第一次导入它时(在a.py中),将执行字符串连接。但是第二次导入时(在b.py中),conf.myOption已经有了它的值,因此不会执行字符串连接。这是正确的吗
如果在完成这两个导入之后,我将在b.py中执行以下操作
conf.myOption = 'aDifferentFoobar'
显然,b.py现在会看到这个新值。py会看到相同的值,还是仍然会看到“foobar”
我相信(如果我错了,请纠正我)进口总是通过参考而不是价值来参考的?我猜这就是上述问题的归结
试试看:
mod.py
:b.py
:a.py
:执行
a.py
:输出:
我们了解到:
foo()
只执行一次mod.opt
由b.py
更改a.py
查看mod.opt
的更改值a.py
中import
的顺序并不重要相关问题 更多 >
编程相关推荐