您的位置:首页 > 编程语言 > Python开发

初探python的__init__.py

2015-08-30 01:10 645 查看
在自动化用例组织过程中,我们总会遇到这样的问题,文件太多,太过杂乱,不好管理,每次挑选用例需要花费很长时间找到要执行的用例,不方便管理等等……
        事实在python中,有一个包的概念,即package,那么怎么才算一个package呢?这就是今天的主角:__init__.py了。

        如下图所示的目录结构:

        


        主调文件在最外层的iwebshop中,而二级目录有两个,即common和smoke.如果我们删除了__init__.py,那么这个只能是两个目录而已。但加入了这个__init__.py,这两个文件夹目录就成为了两个包,包下可以包含多个文件。

        下面来看看这玩意儿有啥用。

        我们知道在python中使用包需要用import导入,那么__init__.py的重要作用之一就是:使这个目录被当作包来导入。如上图,如果我想要使用testcase_LoginAndLogout.py内的方法的时候,我们只需要import smoke.testcase_LoginAndLogout即可。当然这种情况是说__init__.py文件就是个空文件,啥也没有的时候。

        还有一个重要作用就如下图所示: 


 
        在__init__.py文件里把当前包下所有文件内的方法用一个列表赋值给一个变量:__all__

        然后你就可以愉快的使用from smoke.testcase_LoginAndLogout import *了。

        综上所述,事实上我们在import一个模块的时候,导入的是其__init__.py文件,由此,我们甚至可以把这个包下面用到的所有的包放到这个列表里,比如如果我们用到了time模块,那么我们就在列表中加一个元素‘time’,那么这个时候,我们在其他文件内要调用这个包的时候,需要用到time的时候,相当于已经导入过了time,而不用重复写import time,这样就在结构化编程的同时附带使代码更简洁了。

        应用:自动化用例结构化管理。我们可以把属性类似的用例打在一个包内,使之更加集中,管理方便,调用也更加方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息