在Python 2.7中导入我自己的模块时的行为不一致

时间:2016-09-14 08:37:54

标签: python python-2.7 module

我创建了一个模块,它位于自己的文件夹中,其中包含__init__.py和四个包含我的类的文件。

在执行from MyPackage import *时,我正在按照预期在__all__ __init__.py语句中获取我写入的模块。

执行from MyPackage import ModuleX时,我可以单独导入任何模块。

在执行import MyPackage然后说dir(MyPackage)时,我得到的就是:

['__all__',
 '__builtins__',
 '__doc__',
 '__file__',
 '__name__',
 '__package__',
 '__path__']

我的模块未显示,我也无法使用MyPackage.ModuleX访问它们。

我在__init__.py中写的唯一内容是__all__ = [ModuleX]声明。

为什么最后一个语句看不到我的模块?我是否需要设置更多配置?

1 个答案:

答案 0 :(得分:1)

__all__确定该模块中导出的名称。但是,为了导出它们,您需要首先导入它们,但您还没有。