正确理解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基础教程之获取本机ip数据包示例
Feb 10 Python
Python内置函数dir详解
Apr 14 Python
Python验证码识别处理实例
Dec 28 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
python图像处理入门(一)
Apr 04 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
Python networkx包的实现
Feb 14 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
Python中os模块的简单使用及重命名操作
Apr 17 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
python中if和elif的区别介绍
Nov 07 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
一个程序下载的管理程序(二)
2006/10/09 PHP
php四种基础算法代码实例
2013/10/29 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
php中使用sftp教程
2015/03/30 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
Javascript开发包大全整理
2006/12/22 Javascript
简单的JS多重继承示例
2008/03/13 Javascript
JS解密入门之凭直觉解
2008/06/25 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
Python中的super()方法使用简介
2015/08/14 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
ORACLE第二个十问
2013/12/14 面试题
妇科医生自荐信
2013/11/05 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2015年教师新年寄语
2014/12/08 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书