关于 if __name__ == '__main__' 的理解
简介:
Python为脚本语言,不像其他编译语言一样,在运行之前,先将程序编译成二进制,在运行。该语言运行方式为逐行解释运行,因此,在整个程序中没有统一的程序入口。
Python源文件除了可以被直接运行外,还可以作为模块被其他python文件导入。不管是直接运行还是被导入,.py文件的最顶层代码都会被运行,而当一个.py文件作为模块被导入时,有一部分代码可能不被希望运行。因此,该语句便起了至关重要的作用。
使用方法说明:
if __name__ == '__main__'
的意思是:
当.py文件被直接运行时,if __name__ == '__main__'
之下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == '__main__'
之下的代码块不被运行。
运行原理:
a.py 代码如下:
print (__name__)
运行结果为: main
b.py 代码如下
import a
print(__name__)
运行结果为: a 和 main 其中 a为 a.py 的 name ,而 main 则为 b.py 的 name。
因此该语句主要就是判断是否是程序主入口,如果是程序主入口,则代码块执行,否则代码块不执行
转载于:https://www.cnblogs.com/Leo-Xia/p/9647735.html
关于 if __name__ == '__main__' 的理解相关推荐
- 魔力Python--if __name__ == '__main__' 的理解
if __name__ == '__main__' 的理解 __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ . 这句话的意思就是,当模块被直接运行时,以下代码块将被运行, ...
- python使用笔记:if __name__ == ‘__main__‘ 如何理解
大部分内容来自: 作者:初识CV 链接:https://www.zhihu.com/question/49136398/answer/1654722335 来源:知乎 著作权归作者所有.商业转载请联系 ...
- __name__=='__main__'的理解和使用
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- 关于if __name__ == '__main__'的理解
学习作用域时,有些疑惑,if __name__ == '__main__':. 第一,添加这条语句的作用是什么?原理是什么? 第二,添加这条语句有什么好处? if __name__ == '__mai ...
- Python 中 if __name__ == '__main__': 的理解
1.这段代码的功能 一个 Python 的文件有两种使用的方法,第一是直接作为脚本执行,第二是 import 到其他的 Python 脚本中被调用(模块重用)执行.因此 if __name__ == ...
- 如何简单地理解Python中的if __name__ == '__main__'
如何简单地理解Python中的if __name__ == '__main__' 文章目录: 一.摘要 二. 程序入口 虽然已经知道这个具体的用法,但是这篇文章有很多细节写的还是很好,决定转载一下,日 ...
- Python 中的 if __name__ == __main__ 该如何理解
Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...
- 如何快速简单粗暴地理解Python中的if __name__ == ‘__main__‘
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- 解惑(二)----- 如何通俗地理解Python中的if __name__ == ‘__main__‘
1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...
- 简单理解Python中的if __name__ == '__main__'
1. 摘要 通俗的理解__name__ == 'main':假如你叫小明.py,在朋友眼中,你是小明(name == '小明'):在你自己眼中,你是你自己(name == 'main'). if na ...
最新文章
- 15年!NumPy论文终出炉,还登上了Nature
- 计算机语言主要由一些指令组成这些指令包括,(计算机组成指令系统汇编语言.ppt...
- RedHat 6配置DNS服务实现主从同步与正反向解析
- Netty系列之Netty 服务端创建
- 开源版本_开源版本PowerShell Core 6.2 发布
- sql删除快还是update快_下班回家,是骑自行车减肥快还是走路减肥快?
- web前端基础(07style)
- Java JDBC c3p0
- 拆轮子系列--RxJava理解(三)--observeOn
- 浅谈Flutter UI布局
- HTML页面禁止选择、页面禁止复制、页面禁止右键
- 动态系统建模与仿真 基本知识笔记(源自DR_CAN)
- WinEdt 的 LaTeX 生成的 pdf 无法中文正向搜索/中文复制后乱码解决
- 使用cloudcompare测量平面之间的距离
- 搭档之家|打造信息交互平台,推进合作新发展
- CTOlib码库介绍(GitHub热门项目收录网站)
- 你知道有哪些用于文件同步的方法?
- 个人永久性免费-Excel催化剂功能第69波-打造最专业易用的商务图表库,即点即用的高级Excel图表...
- 3DMax基础操作快捷键
- 使用VideoCapture进行读取时0x00007FF9A1F86A6F (opencv_world440d.dll)处(位于 opencvtest.exe 中)引发的异常
热门文章
- linux安装mysql配置,linux安装mysql,配置mysql文件
- Xshell7连接VMware15虚拟机上的Ubuntu详细步骤
- 三层交换机VLAN间路由
- PyCharm 2020.2.3复制粘贴及删除键修正
- 济宁a货翡翠,芜湖a货翡翠
- Oracle 树操作、递归查询(select…start with…connect by…prior)
- vue-style,vue-style-scoped
- 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更新索引
- 网络热词下的民意传播
- 阿里数据库内核月报:2016年08月