正确理解Python中if __name__ == '__main__'


Posted in Python onJanuary 24, 2019

在Python,我们经常会编写

if __name__ == '__main__'

这么一段代码,这段代码该怎么来理解?

这段代码的功能理解如下:

一个python的文件有两种使用的方法:

  • 作用一,直接作为脚本执行。
  • 作用二,import到其他的python脚本中被调用(模块重用)执行。

if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

运行原理

每个python模块(python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。所以当模块被直接执行时,__name__ == '__main__'结果为真;而当模块被import到其他模块中时,__name__ == '__main__'结果为假,就是不调用对应的方法。

简而言之就是:__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。当模块被直接运行时,代码将被运行,当模块是被导入时,代码不被运行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python解决N阶台阶走法问题的方法分析
Dec 28 Python
python3使用SMTP发送简单文本邮件
Jun 19 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
Python自动创建Excel并获取内容
Sep 16 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
python中的插入排序的简单用法
Jan 19 Python
Python闭包的定义和使用方法
Apr 11 Python
Python OpenGL基本配置方式
May 20 Python
对python读取CT医学图像的实例详解
Jan 24 #Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 #Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 #Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 #Python
在python下读取并展示raw格式的图片实例
Jan 24 #Python
Python字典的核心底层原理讲解
Jan 24 #Python
使用PIL(Python-Imaging)反转图像的颜色方法
Jan 24 #Python
You might like
SAE实时日志接口SDK用法示例
2016/10/09 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
js 字符串操作函数
2009/07/25 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
python正则表达式之对号入座篇
2018/07/24 Python
python 用下标截取字符串的实例
2018/12/25 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
python如何编写win程序
2020/06/08 Python
Noon埃及:埃及在线购物
2019/11/26 全球购物
行政主管岗位职责
2013/11/18 职场文书
2014年高中班主任工作总结
2014/11/08 职场文书
结婚保证书
2015/01/16 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
python中的None与NULL用法说明
2021/05/25 Python
SpringBoot集成Redis的思路详解
2021/10/16 Redis
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL