Python中的if __name__ == ‘__main__‘什么意思?
什么是 __name__ 和 __main__ ?
为了解释这个问题,我们首先构造一个程序文件module1.py,内容如下:
def func1():print('hello')print('the __name__ of module1 is: ' + __name__)if __name__ == '__main__': # 很显然,这是一个条件语句func1()print('Now it\'s in module1')
当我们运行module1.py时,输出的结果为:
hello
the __name__ of module1 is: __main__
Now it's in module1
由输出可以知道,此时__name__
就等于__main__
。其实,python代码在每次运行时,就会有一些初始化好的内置变量,而__name__
就是其中之一。当在本文件(当前程序)中运行时,__name__
就等于__main__
,否则__name__
等于所在文件/模块的名称。
与module1.py在同一文件夹下,我们构造module2.py,内容如下:
import module1module1.func1()print('the __name__ of module2 is: ' + __name__)
运行modul2.py,输出为
hello
the __name__ of module1 is: module1
the __name__ of module2 is: __main__
上述输出结果证明了在当前环境下,func1中的__name__
等于它所在的模块/文件名,即module1;而当前文件的__name__
等于__main__
。
什么是 if __name__ == ‘__main__’ ?
现在这个问题就很简单了。这条语句的意思就是:检查当前环境下的__name__
是否等于__main__
,如果等于,就执行if语句体的内容。
if __name__ == ‘__main__’ 有什么用?
if __name__ == '__main__'
这条语句只有在__name__
所对应的文件下才会满足条件,所以,if语句体(body)的内容也只有在对应文件下才会执行,而这一特点在python设计模块(module)时带来极大的便利。
当我们设计好一个模块后,我们想运行一些测试代码,而这些测试代码我们不希望在别的文件import本模块时引入,造成干扰。解决方案就是我们把测试代码放入if __name__ == '__main__'
之后,这样,只有在运行测试本模块(本文件)时,测试代码才会执行。
Python中的if __name__ == ‘__main__‘什么意思?相关推荐
- 如何简单地理解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 ...
- 2020-12-11 Python中的 if __name__ == “__main__“
Python中的 if __name__ == "__main__" 对于Python初学者来说,在看别人代码时经常会看到if __name__ == "__main__ ...
- python中使用if __name__ == '__main__':
引子 在python中,假设在一个test1.py的模块中定义了一个foo函数,然后调用函数foo进行测试的时候会产生一个内存空间.当你把这个模块导入到test2.py模块中,接下来如果在test2. ...
- Python中的if __name__ == ‘__main__‘
if name == 'main'的意思是:当.py文件被直接运行时,if name == 'main'之下的代码块将被运行:当.py文件以模块形式被导入时,if name == 'main'之下的代 ...
- 如何快速简单粗暴地理解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 ...
- 一个实例告诉你Python中关于 if __name__ == ‘__main__‘ 有何作用
文章目录 前言 正文 .py源文件 实例现象 运行原理 前言 相信大部分开发者对于"程序入口"这个概念并不陌生.对于很多编程语言来说,程序都必须要有一个入口,比如既保留C语言面向过 ...
- Python 中的 if __name__ == '__main__' 该如何理解
程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...
最新文章
- android 53 ContentProvider内容提供者
- 性能调优之工具---perf
- Linux快捷键及文件和目录的操作
- STM32CubeMX使用方法及功能介绍
- 2014025631嵌入式程序设计第一周学习总结
- springboot集成Spring Security oauth2(八)
- ubuntu18.04系统ros melodic 安装orbslam2,Astra相机的ROS环境
- 银行家算法检测死锁c语言,[算法]操作系统进程调度与通信算法 Dijkstra银行家算法 C语言实现 | 李大仁博客...
- 2.深入分布式缓存:从原理到实践 --- 分布式系统理论
- 故障处理,no space left on device!几种可能性?
- 【基础教程】基于matlab图像融合总结【含Matlab源码 055期】
- Python math.erf() 方法
- python for ArcGIS 绘制成都市板块地图
- 你知道wps删除空白页的方法吗?进来看看吧
- D3D9学习笔记之颜色
- java.time.format.DateTimeParseException: Text ‘xxxx-xx-xx xx:xx:xx‘ could not be parsed at index 10
- 几何画板是如何证明勾股定理的
- C语言:找出10000以内所有的素数(质数)
- 双重预防机制数字化系统赋能施工企业安全隐患闭环管理,安全风险分级管控
- OceanBase 社区版部署示例