【发布时间】:2012-01-22 10:12:39
【问题描述】:
我想知道为什么python包中包含子模块的目录(子包)在导入包时显示为符号。例如,如果我有这个包:
PyModTest/ Top-level package
__init__.py Initialize the package
Source/ Subpackage holding source files
__init__.py
WildMod.py Submodule containing a function: 'WildFunc'
顶层 __init__.py 如下所示:
#!/usr/bin/env python
from Source.WildMod import WildFunc
为了完整起见,较低级别的 __init__.py 如下所示:
#!/usr/bin/env python
__all__ = ["WildMod"]
好的,现在我打开解释器,导入模块,然后查看符号:
>>> import PyModTest
>>> dir(PyModTest)
['Source', 'WildFunc', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
看,“源”模块出现了,尽管我从未专门导入它!
我想看到的唯一符号(除了私有符号)是我的“WildFunc”。有没有办法隐藏“源”包?
【问题讨论】:
标签: python