正确理解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利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
python调用百度语音识别api
Aug 30 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
Django中使用MySQL5.5的教程
Dec 18 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
python 实现两个线程交替执行
May 02 Python
python re.match()用法相关示例
Jan 27 Python
python批量创建变量并赋值操作
Jun 03 Python
python基础之//、/与%的区别详解
Jun 10 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连接access数据库
2008/03/27 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
JS使用正则表达式过滤多个词语并替换为相同长度星号的方法
2016/08/03 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
优秀求职信范文分享
2013/12/19 职场文书
初中物理教学反思
2014/01/14 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
业务总经理岗位职责
2014/02/03 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
学生检讨书怎么写
2014/10/09 职场文书
质量保证书怎么写
2015/02/27 职场文书