Python>>>python文件夹中__init__.py的用处

字数 465阅读 504

在学习接口自动化时,遇到一个很坑的问题,一直不知道啥原因,后面知道真相后,感觉要蠢哭了orz~~~~~~

事情真相是这样的:

如下如,test文件夹下 有个 testcase,可以运行成功且无报错,也生成了测试报告,如红框所示:

测试报告

可是打开测试报告后,如下图所示:

测试结果并没有写入表单中。

打开测试报告

折腾了好久,最后发现是 少了 __init__.py 文件,如果没有__init__.py文件的话就是普通的directory,它就不能被导入或者包含其它的模块和嵌套包,那么执行也是无效的。所以说 __init__.py的 第一个作用就是package的标识。

如果是直接新建 python package 的话,可以看到会默认在该目录下新增一个 __init__.py 文件,该Python文件默认是空的。


嗯~ 后面加上了 __init__.py文件后,再次运行用例。

再次运行用例

得到新的 测试报告,并打开测试报告查看内容,如下图所示,已经有测试结果了。

新的测试报告
新的测试报告内容

那么__init__.py 到底是什么作用呢?

1. python中package的标识,它可以什么也不定义;可以只是一个空文件,但是必须存在,不能删除。

2. 我们可以在__init__.py导入我们需要的模块,不需要一个个导入了。

3. __init__.py 中还有一个重要的变量,__all__, 它用来将模块全部导入。

如下图:


# __init__.py  中将模块全部导入

__all__ =['os', 'sys', 're', 'urllib']

# a.py  中可使用 import* 直接导入

from  package  import*


总之~

_init_.py 还是越简单越好,尽量默认为空就好。

推荐阅读更多精彩内容