我想知道爲什麼在導入包時,在Python包中包含子模塊的目錄(子包)顯示爲符號。舉例來說,如果我有這個包: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__']
看到了'Source'模塊出現了,儘管我從未專門導入它!
我想看到的唯一符號(除了私人的)是我的'WildFunc'。有什麼方法可以隱藏「Source」包嗎?
太棒了,這是有道理的。感謝您對'del Source'的建議:) – rokuingh 2011-12-17 01:02:51