module1.py:
from somemod import something
import module2
module2.py:
from somemod import something
something
中的module1
与something
中的module2
完全相同吗?
例如,如果在导入module2之前,module1将执行something.val = 10
。 module2可以通过something.val
获取值吗?或者是否有不同的对象?
提出不同的问题: import
执行导入的模块,即使它已经在解释器会话中导入了另一个模块吗?
另外,如果module1已导入它,是否需要在module2中from somemod import something
?
答案 0 :(得分:5)
这是同一个对象。与Python中的其他所有模块一样,模块是存在于内存中并由名称引用的对象。 import
语句执行两项操作:一,如果请求的模块尚不存在,则执行导入文件中的代码和两个,使其作为模块可用。后续导入语句将跳过第一步。这意味着在module1
中,名称module1.something
和module1.module2.something
都引用了第一次导入somemod
时创建的同一对象。