在__init__.py文件中import语句的作用

时间:2023-02-01 04:31:28

package的目录结构如下图
在__init__.py文件中import语句的作用
在pack1目录下的init_import_func.py中的定义了两个方法,代码如下

def func1():
print "pack1's func1"

def func2():
print "pack1's func2"

在pack1目录下的_init_.py中导入init_import_func.py定义的两个方法

from .init_import_func import func1
from .init_import_func import func2

在package目录下的init_import_test.py中测试代码如下

from pack1 import func1
from pack1 import func2

def main():
func1()
func2()

if __name__ == '__main__':
main()

运行后输出
在__init__.py文件中import语句的作用

从运行的结果可以看到,在_init_.py文件中import的东西可以在其他地方使用的时候直接导入。又如使用flask框架里redirect方法,我们一般使用的时候都是写这样的导入语句,

from flask import redirect

但是redirect不是flask包下模块里的方法。查看的flask包下面的_init_.py源码

from werkzeug.utils import redirect

可以看到redirect是从另一个模块导入的方法。总的来说,_init_.pyimport语句是为了暴露某些模块,方便使用。