正确理解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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
Python数据结构之翻转链表
Feb 25 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
python时间序列按频率生成日期的方法
May 14 Python
Python求解正态分布置信区间教程
Nov 20 Python
python烟花效果的代码实例
Feb 25 Python
python正则表达式实例代码
Mar 03 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 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
收集的PHP中与数组相关的函数
2007/03/22 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
分享php分页的功能模块
2015/06/16 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
HTML5开发Kinect体感游戏的实例应用
2017/09/18 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python获取豆瓣电影简介代码分享
2014/01/16 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
django fernet fields字段加密实践详解
2019/08/12 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
快速了解Python开发环境Spyder
2020/06/29 Python
外贸英语毕业生自荐信
2013/11/14 职场文书
办理护照介绍信
2014/01/16 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
消防工作实施方案
2014/06/09 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
政风行风整改报告
2014/11/06 职场文书
教师调动申请报告
2015/05/18 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
CSS基础详解
2021/10/16 HTML / CSS