导入包或者包中的模块的时候被导入的包中的__init文件会先被执行
可以利用这个特点在init模块中做一些初始化工作
__init__.py中的 __all__=["m1","m2"]
表示当前包中的模块只有m1 m2允许外部使用
批量导入系统类库时 一般使用包的__init__.py来实现批量导入
这个是init最常用到的地方
包和模块是不会被重复导入的
要避免循环导入(两个模块之间互相导入或者是多个模块之间的引入形成闭环 如m1 import m2 m2 import m3 m3 import m1)
不能这么做是因为python中导入一个模块时会去执行这个模块中的内容 一个模块被多个其他模块导入时 他只会因为被导入而执行1次而不是多次