正确理解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中asyncio模块
Mar 03 Python
在CMD命令行中运行python脚本的方法
May 12 Python
python redis连接 有序集合去重的代码
Aug 04 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
python生成requirements.txt的两种方法
Sep 18 Python
Django框架模板用法入门教程
Nov 04 Python
pyinstaller打包程序exe踩过的坑
Nov 19 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
Mar 09 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
python APScheduler执行定时任务介绍
Apr 19 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
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
TypeScript入门-接口
2017/03/30 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python牛刀小试密码爆破
2011/02/03 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python性能提升之延迟初始化
2016/12/04 Python
python数据封装json格式数据
2018/03/04 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Django中间件基础用法详解
2019/07/18 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
Python通过socketserver处理多个链接
2020/03/18 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
英国Radley包德国官网:Radley London德国
2019/11/18 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
财务经理岗位职责
2013/11/09 职场文书
写自荐信三大法宝
2014/01/24 职场文书
选秀节目策划方案
2014/06/06 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
SQL Server2019数据库备份与还原脚本,数据库可批量备份
2021/11/20 SQL Server