正确理解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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
使用cx_freeze把python打包exe示例
Jan 24 Python
获取python文件扩展名和文件名方法
Feb 02 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
Python 文件数据读写的具体实现
Jan 24 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
Python爬取某平台短视频的方法
Feb 08 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/12/13 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
php 文件上传实例代码
2012/04/19 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
JS中的三个循环小结
2017/06/20 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python的Django框架安装全攻略
2015/07/15 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python