python模块包

python的包与java中包的概念有些一些类似,但是也有些区别,相同的地方都是采用的目录名作为包名称,区别在于python的包可以在导入的过程中预留一个执行时机。

python包目录下需要有一个__init__.py文件,该文件可以做包导入的一些初始化工作,也可以指定导入包全部的限定操作

如果在导入包的时候,例如包的目录结构如下:

dir _

|_ py1.py

        |_ py2.py

        |_ py3.py

等。

如果按照如下导入

from dir import *

则会自动执行dir目录下的__init__的 __all__变量

如果__all__的定义如下则:

__all__ = {'py1', 'py2'};

则import * 只会导入py1和py2 模块,这样py3可以作为dir包的内部模块,(内部使用不做导出操作)

可以提高模块的封装性。


你可能感兴趣的:(python模块包)