Python中if __name__ == ‘__main__‘:的作用和原理(自用笔记)
if __name__ == ' __main__':的作用
一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if __name__ == 'main'
: 的作用就是控制这两种情况执行代码的过程,在 if __name__ == 'main'
: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。举例说明如下:
- 直接执行
直接执行 test.py,结果如下图,可以成功 print 两行字符串。即,if name==“main”: 语句之前和之后的代码都被执行。
- import 执行
执行 import_test.py 脚本,输出结果如下:
只输出了第一行字符串。即,if name==“main”: 之前的语句被执行,之后的没有被执行。
if __name__ == '__main__':的运行原理:
每个python模块(python文件,也就是此处的 test.py 和 import_test.py都包含内置的变量 __name__
,当该模块被直接执行的时候,__name__
等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 name 等于模块名称(不包含后缀.py)。
而 __main__
始终代表当前执行模块的名称(包含后缀.py)。进而当模块被直接执行时,__name__ == '__main__'
结果为真。
为了进一步说明,我们在 test.py 脚本的 if name==“main”: 之前加入 print(name),即将 name 打印出来。文件内容和结果如下:
可以看出,此时变量__name__的值为"__main__"
。
再执行 import_test.py,执行结果如下:
此时,test.py中的__name__
变量值为 test,不满足 __name__=="__main__"
的条件,因此,无法执行其后的代码。
小技巧:
pycharm中:写main
直接回车就会自动写出来
if __name__ == '__main__':
Python中if __name__ == ‘__main__‘:的作用和原理(自用笔记)相关推荐
- python 中if __name__ = '__main__' 的作用
python 中if __name__ = '__main__' 的作用 前言 首先我们要知道在python里面万物皆对象,模块也是对象,并且所有的模块都有一个内置属性 __name__. 一个模块的 ...
- 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__': 的解析
2019独角兽企业重金招聘Python工程师标准>>> python中if __name__ == '__main__': 的解析 当你打开一个.py文件时,经常会在代码的最下面看到 ...
- python基础之python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...
- Python 中 if __name__ == '__main__': 的理解
1.这段代码的功能 一个 Python 的文件有两种使用的方法,第一是直接作为脚本执行,第二是 import 到其他的 Python 脚本中被调用(模块重用)执行.因此 if __name__ == ...
- python中 if __name__ == ‘__main__‘
很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...
- python 中 if __name__ == '__main__' 判断的作用
假设这样一个a.py文件 def fun1(): ........ def fun2(): ......... if __name__=='__main__': ......#执行的一些语句 当你执行 ...
- python if name main 的作用_Python中if __name__ == __main__: 的作用
在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在python编 ...
- Python的if __name__ == ‘__main__‘:的作用
程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...
最新文章
- [PAL编程规范]SAP HANA PAL双变量几何回归预测分析Bi -Variate Geometric Regression编程规范FORECASTWITHGEOR(预测)...
- php对象持久化,在 Oracle 中完成 PHP5 对象的持久
- 执行srvctl报错 :error while loading shared libraries: libpthread.so.0:
- Java 线程——创建和运行线程|| lambda表达式就是一个匿名内部类||Thread 与 Runnable 的关系||FutureTask 配合 Thread
- python计算n到n+100之间所有奇数的和_Python基本操作题
- ibatis(1)ibatis的理念
- 初学者选黑卡还是微单_明日之镜 十年索尼微单和他的镜头王国
- Asp.net mvc 实时生成缩率图到硬盘
- springboot项目中jdk版本的问题
- 微软Code Hunt答案(00-05)——沉迷娱乐的我
- 迷宫探索DFS(递归记录来回路径)
- java rgb565转rgb888_RGB565 与 RGB888的相互转换
- opencv 查找白色图片的一个黑点
- 《编码-隐匿在计算机背后的语言》 —— 读书笔记(三):数字
- oracle18c静默安装教程,CentOS7无图形化界面静默安装oracle18c
- qt显示温度℃度数°或中文等特殊符号
- mysql 基于ssl认证
- java计算机毕业设计五金机电市场批发零售管理信息系统源程序+mysql+系统+lw文档+远程调试
- 用Word编辑论文的小经验(转)
- Citrix Receiver Desktop Lock 4.x配置手册
热门文章
- 异构网络垂直切换算法LTE/WIMAX切换
- 如何查看某个端口被哪个进程占用
- 干货!一次kafka卡顿事故排查过程
- 基于go搭建微服务实践教程 (概览)
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
- Converting slapd.conf to a Directory Based Configu
- moa 35 批量删除
- 【ArcGIS 10.2新特性】Geodatabase 10.2 常见问题
- E:Unable to locate package libssl-dev:i386
- 在联盛德W600 SDK上添加C文件并实现GCC编译