if __name__ == "__main__"

  日常编写Python代码,习惯性的在文件后面会追加一句  if __name__ == "__main__" 。其实作用大家应该也都清楚,就是用以区分python文件执行的时候,哪些代码需要执行哪些代码不需要执行。

  可是,这一句if判断后面的逻辑基础是什么呢?今天随笔说明一下:

Python文件有两种执行方式,其一是类似python xxx.py这种直接执行,全局变量__name__此时的取值就是__main__;其二是类似import xxx这种被别的模块导入引用,全局变量__name__此时的取值则是文件名(不含后缀)。

  下面,我们通过一段简短的测试代码验证上述说明:

  1)当我们的test111.py自己直接运行的时候,输出如下:if __name__ ==_name

 

 

   2)当test111.py被import test111导入到test222.py中执行test222.py的时候,输出如下:if __name__ ==_name_02

   此时,通过单步调试可以看出,变量__name__在整个执行过程中的变化:if __name__ ==_name_03

if __name__ ==_name_04