正确理解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中处理时间的几种方法小结
Apr 09 Python
Python解析树及树的遍历
Feb 03 Python
jupyter安装小结
Mar 13 Python
Python操作csv文件实例详解
Jul 31 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
python Pillow图像处理方法汇总
Oct 16 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
Python实现byte转integer
Jun 03 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入门源程序
2006/10/09 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
javascript web页面刷新的方法收集
2009/07/02 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
Python中实现参数类型检查的简单方法
2015/04/21 Python
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
后勤副校长自我鉴定
2013/10/13 职场文书
个人优缺点自我评价
2014/01/27 职场文书
进步之星获奖感言
2014/02/22 职场文书
大学军训的体会
2014/11/08 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
React实现动效弹窗组件
2021/06/21 Javascript
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers