我们经常看到python程序中执行部分开头有:

if __name__ == '__main__'

:

这是什么意思?对于初学者一定会有这个疑问(注意最后的冒号:不能没有)。

由于每个python模块(python文件)都包含内置的变量__name__,

当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。

如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。

而“__main__”等于当前执行文件的名称(包含了后缀.py)。

所以当模块被直接执行时,__name__ == '__main__' 结果为真;

而当模块被import到其他模块中时,__name__ == '__main__' 结果为假,就是不调用对应的方法。

简而言之就是:__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。

当模块被直接运行时,代码将被运行,当模块是被导入时,代码不被运行。

if 语句还可以防止模块中的测试代码被执行,主要用于测试本脚本是否能正常运行。

举例:

程序 a.py 内容——

print('a.py')

if __name__ == '__main__':

print('running a.py, module is '+__name__)

程序 b.py内容——

import a

print('b.py')

if __name__ == '__main__':

print('running b.py, module is '+__name__)

1. run a.py, output

a.py

running a.py, module is __main__

2. run b.py

a.py #

运行了a.py的第一条语句,if后面的语句都没有运行

b.py

running b.py, module is

__main__ #

运行b.py的if语句

python程序中name的作用_python编程中的if __name__ == '__main__': 的作用和原理相关推荐

  1. python中for循环流程图_Python编程中的for循环语句学习教程

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) ...

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

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

  3. 浅析python 中__name__ = '__main__' 的作用

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

  4. python 中__name__ = '__main__' 的作用

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

  5. python中main的作用_浅析python 中__name__ = '__main__' 的作用

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

  6. python程序的name的作用是什么_python 中__name__ = '__main__' 的作用,到底干嘛的?

    python 中__name__ = 'main' 的作用,到底干嘛的? 有句话经典的概括了这段代码的意义: "Make a script both importable and execu ...

  7. python画完图 程序暂停运行_Python编程:认识IDLE,编写保存运行第1个程序

    Python编程需要有一个合适的编辑器. 就像我们平常写文章用Word,处理数据用Excel一样,处理图片要用PS或美图秀秀,我们编写Python程序也需要一个编辑器,正所谓工欲善其事,必先利其器. ...

  8. python编程的基本方法有哪些_Python编程中常用的基础知识有哪些?

    今天小编要跟大家分享的文章是关于Python编程中常用的基础知识有哪些?正在从事Python相关工作的小伙伴们,来和小编一起看一看本篇文章,希望本篇文章能够对大家有所帮助. 1.正则表达式替换 目标: ...

  9. python编程中的运算_Python编程中的四大运算法则

    接触过编程的人都知道,编程中的数学知识无处不在,通过数学建模能够解决我们实际生活中的很多问题.当然这并不是说必须要成为一名数学大神才能学编程,但掌握数学知识在编程中的表达方法却是很有必要的,今天南京小 ...

  10. python编程模式_Python编程中的反模式

    原标题:Python编程中的反模式 这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题. 本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段. 对 ...

最新文章

  1. 区块链软件公司:区块链运用在金融上运用的优点有哪些?
  2. Seaborn(1)图画背景刻度设置
  3. whatpulse.exe 启动时报错
  4. docker安装配置gitlab详细过程
  5. 前嗅ForeSpider教程:数据建表
  6. JAVA50道经典编程题
  7. android 自定义属性 双向绑定,如何解决:“在使用自定义视图实现双向数据绑定时,找不到属性’android:text’”的getter?...
  8. php强制浏览器不缓存,php强制浏览器不缓存和设置浏览器缓存
  9. mac系统下配置java 和maven环境变量
  10. Windows安全基础-基线配置
  11. Spring Boot + ECharts
  12. 文具行业APS解决方案
  13. spring boot整合微信支付
  14. oracle vm 产品介绍,Oracle VM Server for SPARC 产品概述
  15. 高三学生早恋怎么处理?家长该怎么做?
  16. 哪款蓝牙耳机耳朵不疼?久戴不疼的骨传导耳机
  17. 人工神经网络的基础数学模型来自哪里
  18. 横向扩展与纵向扩展区别详解
  19. C语言入门笔记代码(第二天)
  20. 壹号本 深度 linux,壹号本4代迷你笔记本开箱,10.1英寸大小,平板电脑二合一设计...

热门文章

  1. java json 本身_JSON以及Java转换JSON的方法(前后端常用处理方法)
  2. Tensorflow学习笔记:使用线性回归进行简单分类
  3. docker管理神器—kubernetes—直接路由篇
  4. Silverlight提示“Load 操作失败。远程服务器返回了错误: NotFound”
  5. 常用html元素的取值和赋值方法总结
  6. 搭建自己的OwnCloud私有云
  7. 2440开发板linux系统移植3G拨号上网收发短信(三)
  8. H3C交换机配件RS232配置线(DB9针转RJ45)
  9. ASP.NET MVC入门教程(二)文章列表页、内容页的实现
  10. 一个能拖动,能调整大小,能更新bind值的vue指令-vuedragx