正确理解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 制作图片转pdf工具
Jan 30 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
Python搭建HTTP服务过程图解
Dec 14 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
pandas提升计算效率的一些方法汇总
May 30 Python
Python面试不修改数组找出重复的数字
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
百度地图API使用方法详解
2015/08/25 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jquery 插件开发方法小结
2009/10/23 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python 实时遍历日志文件
2016/04/12 Python
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
优秀的教师个人的中文求职信
2013/09/21 职场文书
团日活动总结
2014/04/28 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
党员违纪检讨书
2015/05/05 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
学校财务管理制度
2015/08/04 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
Python的property属性详细讲解
2022/04/11 Python
MySQL的意向共享锁、意向排它锁和死锁
2022/07/15 MySQL