【发布时间】:2015-03-15 19:16:35
【问题描述】:
我的问题是关于 python 2.7 命名空间和模块导入。我的问题是理解为什么会这样: 如果我有一个模块文件 memory.py:
memory={}
def insert_into(a,b):
memory[a]=b
然后是两个文件 mod1.py 和 mod2.py 的代码相似: mod1.py:
import memory
memory.insert_into('a',1)
mod2.py:
import memory
memory.insert_into('b',2)
最后是我作为脚本运行的 test.py 文件:
import mod1,mod2
如果我测试一下:
mod1.memory.memory is mod2.memory.memory
它返回真。这是预期的吗? mod1 和 mod2 的命名空间在什么时候纠缠在一起? 对不起,如果我的问题没有意义,这是我的第一次。
【问题讨论】:
-
根据您的代码,
mod1.memory存在,但我认为mod1.memory.memory不存在。在我明白这一点之前,我很犹豫是否尝试进一步调试。 -
作为记录,当我尝试这个时,我得到
mod1.memory is mod2.memory返回False。 -
只有一个对象,你会期待什么?
标签: python import namespaces