正确理解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中字符串的处理技巧分享
Sep 17 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
Python学习小技巧之列表项的拼接
May 20 Python
Django后台获取前端post上传的文件方法
May 28 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Python转换时间的图文方法
Jul 01 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
django删除表重建的实现方法
Aug 28 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
Feb 28 Python
python matplotlib库的基本使用
Sep 23 Python
python将图片转为矢量图的方法步骤
Mar 30 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中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
原生JS实现LOADING效果
2015/03/16 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
Opodo意大利:欧洲市场上领先的在线旅行社
2019/10/24 全球购物
给物业的表扬信
2014/01/21 职场文书
学校安全教育制度
2014/01/31 职场文书
《乡愁》教学反思
2014/02/18 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
Pytorch可视化的几种实现方法
2021/06/10 Python
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技