我注意到有时候,如果你在包/模块上调用dir()
,你会看到命名空间中的其他模块作为实现的一部分被导入并且不适合你使用。例如,如果我从PyPI安装鱼包并导入它,我看到fish.sys
,它只是指内置的sys
模块。保留导入的模块不在Python包名称空间
我的问题是这是否理智,如果不是这样,应该怎么做。
我不认为__all__
变量太相关,因为只有影响from X import *
的行为。我看到的选项:
- 结构中的包好,至少推命名空间杂乱分解成子模块
- 使用
import X as _X
在你的包从你的包API从内部 - 进口的东西区分开实施细则你的函数(blegh)
我不明白。如果它不适合你使用,不要。 – SilentGhost 2010-10-06 13:54:50