_init_ : 在调用该包时,会执行包中的init文件内容
如图,Commonly包下有三个经常被调用的文件
若要在其他外部文件(test)中调用Commonly中三个文件中的类,则需要在test中编写引用:
from Commonly.Param_url import Param from Commonly.Response import Response from Commonly.Request import Request
若在多个文件中都引用Commonly中三个文件中的类,则需在每个文件中如此编写相较麻烦
解决方法:
可在Commonly中的init文件中编写
# from Commonly.Param_url import Param #from Commonly.Response import Response from Commonly.Request import Request from .Response import Response # 表示在当前包下寻找Response from .Param_url import Param #__all__=['Param', 'Response', 'Request'] # 使用__all__写入要调用的模块名, 在其他文件调用时需写:模块名.(类名).方法名【若无类则:模块名.方法名)
则在其他文件(test)中调用时可如下写即可:
from Commonly import Request, Param, Response 或者# from Commonly import *
_init_的作用:
1. Python中package的标识,不能删除
2. 定义__all__用来模糊导入或者定义from * import * 引用包
3. 编写Python代码(不建议在__init__中写python模块,可以在包中在创建另外的模块来写,尽量保证__init__.py简单)