Python学习
5.2 __init __.py的用法
当一个包被导入的时候,__init __.py文件首先被执行,而且是被Python自动地去执行。包的这种机制非常有用,在一些真实的项目里,我们通常会在__init __.py文件里去做一些包和模块的初始化工作,这是它的一个应用场景。
无论导入包还是导入包下面模块某一个变量,Python都会自动地帮我们运行__init __.py文件。
作用一:
__init __.py文件里的__all __变量可以指定导入哪个模块的变量,一经指定,用“from 模块 import * ”时,就只能导入指定模块的变量,如下:
这是整个文件结构。
__init __.py文件里的__all __变量指定导入c7模块的变量。
在c1文件中通过“from 模块 import * ”试图导入包t下的所有模块,并且打印c7中的变量a,c8中的变量e,但是运行结果如下:
只打印出了c7下的模块,这就是__init __.py文件中的__all __变量起作用了。
作用二:
可以利用__init __.py文件来进行批量导入。如果多个模块会用到多个系统库,那么在每一个模块中每次都要写好多导入系统库的代码,必定会麻烦。我们可以把这些导入的系统库只写到__init __.py文件中,当某个文件要使用这些系统库时,我们只需要导入__init __.py文件所在的那个包即可,如下: