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__‘:的作用和原理(自用笔记)相关推荐

  1. python 中if __name__ = '__main__' 的作用

    python 中if __name__ = '__main__' 的作用 前言 首先我们要知道在python里面万物皆对象,模块也是对象,并且所有的模块都有一个内置属性 __name__. 一个模块的 ...

  2. Python中if __name__ == '__main__':作用

    Python中if __name__ == '__main__':作用 2012-03-22 11:52:40 分类: Python/Ruby #hello.py def sayHello(): st ...

  3. python中if __name__ == '__main__': 的解析

    2019独角兽企业重金招聘Python工程师标准>>> python中if __name__ == '__main__': 的解析 当你打开一个.py文件时,经常会在代码的最下面看到 ...

  4. python基础之python中if __name__ == '__main__': 的解析

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__.一个 ...

  5. Python 中 if __name__ == '__main__': 的理解

    1.这段代码的功能 一个 Python 的文件有两种使用的方法,第一是直接作为脚本执行,第二是 import 到其他的 Python 脚本中被调用(模块重用)执行.因此 if __name__ == ...

  6. python中 if __name__ == ‘__main__‘

    很多新手刚开始学习python的时候经常会看到python 中__name__ = \'__main__\' 这样的代码,可能很多新手一开始学习的时候都比较疑惑,python 中__name__ = ...

  7. python 中 if __name__ == '__main__' 判断的作用

    假设这样一个a.py文件 def fun1(): ........ def fun2(): ......... if __name__=='__main__': ......#执行的一些语句 当你执行 ...

  8. python if name main 的作用_Python中if __name__ == __main__: 的作用

    在很多python脚本中在最后的部分会执行一个判断语句if __name__ == "__main__:",之后还可能会有一些执行语句.那添加这个判断的目的何在? 在python编 ...

  9. Python的if __name__ == ‘__main__‘:的作用

    程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等.如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要 ...

最新文章

  1. [PAL编程规范]SAP HANA PAL双变量几何回归预测分析Bi -Variate Geometric Regression编程规范FORECASTWITHGEOR(预测)...
  2. php对象持久化,在 Oracle 中完成 PHP5 对象的持久
  3. 执行srvctl报错 :error while loading shared libraries: libpthread.so.0:
  4. Java 线程——创建和运行线程|| lambda表达式就是一个匿名内部类||Thread 与 Runnable 的关系||FutureTask 配合 Thread
  5. python计算n到n+100之间所有奇数的和_Python基本操作题
  6. ibatis(1)ibatis的理念
  7. 初学者选黑卡还是微单_明日之镜 十年索尼微单和他的镜头王国
  8. Asp.net mvc 实时生成缩率图到硬盘
  9. springboot项目中jdk版本的问题
  10. 微软Code Hunt答案(00-05)——沉迷娱乐的我
  11. 迷宫探索DFS(递归记录来回路径)
  12. java rgb565转rgb888_RGB565 与 RGB888的相互转换
  13. opencv 查找白色图片的一个黑点
  14. 《编码-隐匿在计算机背后的语言》 —— 读书笔记(三):数字
  15. oracle18c静默安装教程,CentOS7无图形化界面静默安装oracle18c
  16. qt显示温度℃度数°或中文等特殊符号
  17. mysql 基于ssl认证
  18. java计算机毕业设计五金机电市场批发零售管理信息系统源程序+mysql+系统+lw文档+远程调试
  19. 用Word编辑论文的小经验(转)
  20. Citrix Receiver Desktop Lock 4.x配置手册

热门文章

  1. 异构网络垂直切换算法LTE/WIMAX切换
  2. 如何查看某个端口被哪个进程占用
  3. 干货!一次kafka卡顿事故排查过程
  4. 基于go搭建微服务实践教程 (概览)
  5. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
  6. Converting slapd.conf to a Directory Based Configu
  7. moa 35 批量删除
  8. 【ArcGIS 10.2新特性】Geodatabase 10.2 常见问题
  9. E:Unable to locate package libssl-dev:i386
  10. 在联盛德W600 SDK上添加C文件并实现GCC编译