我想知道为什么在导入包时,python包中包含子模块的目录(子包)会显示为符号.例如,如果我有这个包:
PyModTest/ Top-level package
__init__.py Initialize the package
Source/ Subpackage holding source files
__init__.py
WildMod.py Submodule containing a function: 'WildFunc'
Run Code Online (Sandbox Code Playgroud)
顶级__init__.py看起来像这样:
#!/usr/bin/env python
from Source.WildMod import WildFunc
Run Code Online (Sandbox Code Playgroud)
并且,为了完整起见,下级__init__.py看起来像这样:
#!/usr/bin/env python
__all__ = ["WildMod"]
Run Code Online (Sandbox Code Playgroud)
好的,现在我打开解释器,导入模块,然后查看符号:
>>> import PyModTest
>>> dir(PyModTest)
['Source', 'WildFunc', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
Run Code Online (Sandbox Code Playgroud)
看,"源"模块出现了,即使我从未专门导入它!
我想看到的唯一符号(除了私有符号)是我的'WildFunc'.有没有办法隐藏'Source'包?
python ×1