您当前的位置: 首页 >  Python

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python|自动化测试与if __name__==

发布时间:2019-03-15 23:59:00 ,浏览量:0

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

最近有小伙伴在学习python自动化测试的时候遇到了一个问题,下面我直接奉上代码。

640?wx_fmt=png

解决方案

若要让此程序执行很简单只需在最后一行代码unittest.main()前加一行代码if__name__==”__main__”:方可执行。那么到这里我们为什么只需加一行代码就能使程序执行呢?下面我们将详细的说明if__name__==”__main__”:的原理及用法。

if__name__==”__main__”:的用法:

首先是一个python文件有两种使用方法,第一是作为脚本文件直接运行,第二种是通过调用的方法(第三方库)执行。

而if__name__==”__main__”:的作用就是控制这两种情况执行代码的过程,在if__name__==”__main__”:下面的代码只有在文件作为脚本直接执行时才会被执行,而在第二种情况下if__name__==”__main__”:之后的代码是不被执行的。下面我们用代码来说明这个情况。

直接执行:

640?wx_fmt=png

我们将文件名命名为test.py,执行结果为

640?wx_fmt=png

调用执行:

我们在同一文件夹下创建一个python文件,在文件中输入代码

640?wx_fmt=png

执行情况为

640?wx_fmt=png

通过实例我们不难看出if__name__==”__main__”:的用法,下面我们再来看看if__name__==”__main__”:的原理。首先献上几张图。

640?wx_fmt=png

640?wx_fmt=png

在之前的代码中加入一行代码print("__name__",__name__),输出的代码我们不难看出这里的__name__等于__main__所以if__name__==”__main__”:之后的代码会被执行。

而在调用了test.py文件(第二种情况调用)的python文件中输出的结果为

640?wx_fmt=png

从代码中我们得出的__name__等于test。所以if__name__==”__main__”:之下的代码不被执行。

每个python文件都包含内置的变量__name__,当文件被执行的时候,__name__等于文件名(包含后缀.py),如果文件import调用到其他文件中,则该文件的__name__等于文件名称(不包含后缀.py)。”__main__”始终等于执行文件的名称(包含后缀.py),所以当模块被直接执行时__name__==”__main__”结果为Ture。

结语

通过上面的归纳,其实理解起来还是有一定的难度,当初我自己理解也是花了很长的时间,上述讲解的代码希望python小白下去实战,将代码理解正确那么if__name__==”__main__”:的使用将不是问题。

更多精彩文章:

 where2go 团队

   

微信号:算法与编程之美          

640?wx_fmt=jpeg

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

2.0292s