正确理解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之入门(五)缩进和选择
May 27 Python
使用Python生成XML的方法实例
Mar 21 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
python pandas时序处理相关功能详解
Jul 03 Python
python如何从文件读取数据及解析
Sep 19 Python
Python argparse模块应用实例解析
Nov 15 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
Django视图类型总结
Feb 17 Python
Django中的DateTimeField和DateField实现
Feb 24 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 三维饼图的实现代码
2008/09/28 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
Git命令之分支详解
2021/03/02 PHP
类之Prototype.js学习
2007/06/13 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
JavaScript实现区块链
2018/03/14 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
python实现图像拼接
2020/03/05 Python
python中wheel的用法整理
2020/06/15 Python
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
会议邀请书范文
2014/02/02 职场文书
装配出错检讨书
2014/09/23 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android