python 有关 if __name__ == ‘__main__‘ 的正确理解
写此文章的初衷在于笔者碰到一道题目如下:
“假设有Python程序文件a.py,其代码如下:
def main():if __name__ == '__main__':print(1)else:print(2) main()
若将改程序文件直接运行结果为(),作为模块导入时得到结果为()”
在这里话不多说,直接跑一跑看答案。
可以看到结果分别是1和2。
那么接下来解释为什么是这样一个结果,首先需要说一个关于程序入口的问题。而if __name__ == '__main__'便可以理解为Python 模拟的程序入口,在作为脚本执行时,执行if __name__ == '__main__'下的代码,而作为模块被导入时,被导入的模块中的if __name__ == '__main__'下的代码则不会被执行。
说白了就是如果代码是直接执行的则执行if __name__ == '__main__'下的代码,如果代码时被导入的则不执行。
接下来,便是关于if __name__ == '__main__'中的 “ __name__ ”到底是什么,应该怎么理解。其实,__name__
是一个内置变量,用于表示当前模块的名字,当代码作为脚本执行时,其中的__name__是__main__,当代码作为模块导入时,其中的__name__是被导入的文件名。
举例如下:
a,b,c三个python文件,a,c分别是作为脚本执行,在b中将a,c 分别导入执行,可以清晰的看到在作为脚本执行时,__name__是__main__,作为模块导入时,其中的__name__是被导入的文件名。
故此,对文章开头提到的题目便可以很清晰的得到结果,第一次作为脚本执行,__name__是__main__,故而执行print(1),作为模块导入,__name__是a,故而执行print(2).
以上!
有关程序入口可以参考if __name__ == '__main__' 如何正确理解 - 姚红 - 博客园 (cnblogs.com)
比较详细。
python 有关 if __name__ == ‘__main__‘ 的正确理解相关推荐
- if __name__ == '__main__' 如何正确理解
if __name__ == '__main__' 如何正确理解 if __name__ == '__main__' 如何正确理解 - 姚红 - 博客园 python编程中的if __name__ = ...
- python中的__name__=='__main__'如何简单理解(一)
1. 摘要: 通俗的理解_name_ == '_main_':假如你叫小明.py,在朋友眼中,你是小明(_name_ == '小明'):在你自己眼中,你是你自己(_name_ == '_main_') ...
- if __name__ == '__main__' 如何正确理解?
本文转载自:https://blog.csdn.net/zhusongziye/article/details/79505803 在大多数编排得好一点的脚本或者程序里面都有这段if __name__ ...
- python中if __name__ == ‘__main__‘:的简单理解
举例说明,这里有两个模块 # ni模块 print("这是1.") if __name__ == '__main__':print("这是2.")'''输出结果 ...
- if __name__ == __main__如何正确理解
粗略来讲,__name__是当前模块,当模块被直接运行时模块名为__main__.这句话的意思是,当模块被直接执行时,代码将运行,当模块是被导入时,代码不被运行 例如,执行one.py 1 # fil ...
- Python爬虫笔记——if __name__ == ‘__main__‘ 如何正确理解和__init__和self 的解析
Python中if name == 'main':的作用和原理 Python中if name == 'main',__init__和self 的解析
- Python 中的 if __name__ == __main__ 该如何理解
Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...
- Python中if __name__ == '__main__':作用
Python中if __name__ == '__main__':作用 2012-03-22 11:52:40 分类: Python/Ruby #hello.py def sayHello(): st ...
- python 中if __name__ = '__main__' 的作用
python 中if __name__ = '__main__' 的作用 前言 首先我们要知道在python里面万物皆对象,模块也是对象,并且所有的模块都有一个内置属性 __name__. 一个模块的 ...
最新文章
- mysql 多久备份一次_教你如何通过一次单击自动备份mysql数据库
- 分片表怎么建表_经验放送!后端开发实战笔记之如何设计大数据量表结构
- 【Task5(2天)】模型调参
- 搜索引擎ElasticSearchV5.4.2系列一之ES介绍
- 虚拟机安装centeros7 无法连接网络 virsh命令找不到 删除多余的vir0 不然dubbo会有问题
- Lua语法基础(1)---简介、基本数据类型、表达式
- 坐地铁的好心MM们小心啊,周末刚经历了一个地铁新骗术
- oracle服务说明
- vue样式中背景图片路径_vue打包css文件中背景图片的路径问题
- android的opencv调试,Android opencv 2.3.1 调试及应用(第一篇)
- Hibernate 中Property中的formula属性的使用
- 用MATLAB画出双极性NRZ,[工学]通信原理MATLAB仿真教程第7章.ppt
- 主成分分析在SPSS上的实现与结果分析——基于SPSS实验报告
- vs2008 sp1 C++ 发布程序
- 矩阵卷积运算的具体过程
- OA性能调优方案(一)
- 点电荷分布matlab仿真,利用Matlab模拟点电荷的电场分布..doc
- nlohmann json用法
- 必背C语言算法 C语言小写转大写
- pycharm注册码,之前的已经过期
热门文章
- 【机试题】语言解释器
- layui table 单元格内文字、元素块实现优美的换行显示
- 常见15个C语言的标准库
- Nginx——ubuntu安装Nginx并配置https
- [游戏与人生]推荐几款老单机游戏
- css sprites——CSS精灵
- 论文简述Reversible Data Hiding in Encrypted Images with Two-MSB Prediction加密图像可逆信息隐藏算法
- Efficient reversible data hiding for JPEG images with multiple histograms modification(论文阅读)
- 当人工智能碰见区块链,会发生什么呢?
- 计算机订座系统及操作——CRS介绍