简单快速的问题...说我有一个名为miscfun
的自创包,其中有一些模块/脚本看起来像......
# helper.py
import re
import os
def foo(x):
# Do something with re
def bar(x):
# Do something with os
设置正确的setup.py等后,我可以“安装”我的包并使用
加载它import miscfun.helper
然而,我刚才发现的是我也可以打电话
miscfun.helper.os
或
miscfun.helper.re
'使用're
和os
模块!这不是很奇怪而且令人困惑吗?我可以以某种方式阻止这种情况发生吗?
(如果这不是正常情况,我会很乐意解释更多,但现在我希望这足够了)
答案 0 :(得分:1)
这是python模块完全正常的行为。一旦你import
进入你的模块,就会在模块名称空间中引入新的键(基本上dict
就像python中的所有内容一样)。模块命名空间中的任何键都可以像往常一样在其他地方访问或导入。