代码
# package
# __init__.py
__all__ = ["filex", "dirx"] # 文件 filex.py 和 目录 dirx
import filex
import dirx
其中, 这样写只有一个作用就是用在 from package[.sub_package][.xxx] import * ,这样的模糊导入语句中
__all__ 是为了确定模糊搜索中需要导入的模块,如果__all__ 为空列表,则除了运行一下 __init__文件以外不会去导入其他任何模块 )
import xxx 是为了将 subpackage 中的模块导入进来,其中 import 一个目录时, 会运行该目录下的__init__ 文件。
用目录结构稍微说明一下。
A 包 里面 有 A_init文件,B文件,C目录, C目录里面有 C_init文件,D文件。
如果 A_init 文件里面 __all__ = [“B” ,“C”], 则 from A import * 能导入B和C
否则不能
如果 C_init 文件里面有 import D 语句, 则 from A import * 能导入 D
否则不能
如果 C_init 文件里面 __all__ = [“D”], 则 from A.C import * 能导入C