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

在学习接口自动化时,遇到一个很坑的问题,一直不知道啥原因,后面知道真相后,感觉要蠢哭了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 还是越简单越好,尽量默认为空就好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,包是一种组织Python模块的方法,它将相关的模块组合在一起,形成一个大的模块。包可以包含子包和模块,以及其他资源文件。 在一个包目录,通常会有一个名为`__init__.py`的文件。这个文件的主要作用是标识该目录为Python包,同时可以在其编写一些初始化代码。 `__init__.py`可以为空文件,也可以包含Python代码。如果`__init__.py`文件存在,则在导入包时会自动执行其的代码。这就使得我们可以在包的初始化过程完成一些需要执行的操作,例如设置环境变量、导入必要的模块等。 例如,如果我们有一个名为`mypackage`的包,那么它的目录结构可能如下所示: ``` mypackage/ __init__.py module1.py module2.py ``` 其,`__init__.py`可以包含一些初始化代码,例如: ```python # 在 __init__.py 导入模块 from .module1 import * from .module2 import * ``` 这样,在导入`mypackage`包时,就会自动导入`module1`和`module2`模块。 此外,`__init__.py`还可以定义包级别的变量和函数,供包内的模块使用。例如: ```python # 定义包级别的变量 PI = 3.14 # 定义包级别的函数 def square(x): return x ** 2 ``` 这样,在包内的模块,我们就可以直接使用`mypackage.PI`和`mypackage.square()`来访问这些变量和函数了。 总之,`__init__.py`文件是Python包的重要组成部分,它可以帮助我们更好地组织和管理Python代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值