代码之家  ›  专栏  ›  技术社区  ›  Mu Mind hora

使导入的模块远离python包命名空间

  •  2
  • Mu Mind hora  · 技术社区  · 14 年前

    我有时会注意到如果你打电话 dir() 在包/模块上,您将看到命名空间中作为实现的一部分导入的其他模块,这些模块并不适合您使用。例如,如果我从pypi安装fish包并导入它,我会看到 fish.sys 它只是指内置的 sys 模块。

    我的问题是这是否明智,如果不明智,该怎么办。

    我不认为 __all__ 变量太相关了,因为 只有 影响的行为 from X import * . 我看到的选项有:

    • 更好地构造包,至少将名称空间混乱推入子模块中。
    • 使用 import X as _X 在包中区分实现细节和包API
    • 从函数内部导入内容( 布雷赫 )
    1 回复  |  直到 14 年前
        1
  •  1
  •   Jochen Ritzel    14 年前

    import fish

    help dir