如何在iPython中隐藏命名空间中导入的模块?

时间:2015-11-04 17:40:13

标签: python

使用这个简单的模块:

#!/usr/bin/python
#file: foo.py
import ctypes

class Foo(ctypes.Structure):
   pass

在iPython中:

In [1]: import foo
In [2]: foo.
Foo
ctypes

ctypes是模块foo内部使用的模块,不应向用户显示。目标是隐藏ctypes

提供的自动完成功能ipython

这个解决方案太麻烦了吗?

import ctypes as __ctypes

1 个答案:

答案 0 :(得分:3)

我通常会使用__all__。您的代码将变为:

import ctypes

# Note here
___all__ = []

class Foo(ctypes.Structure):
    pass

# Note here
__all__ += ['Foo']

如果您执行from foo import *,则只会看到Foo(或您添加到__all__的任何其他内容)。