要搞清楚这个问题,要知道以py作为后缀的Python代码文件,有两种使用方式,第一种方式是直接运行,另一种方式是作为模块被别的py文件导入。
当采用第一种方式直接运行自身时,__name__的值为__main__;
当采用第二种方式被别的模块导入时,其__name__的值为其文件名(通常也称为模块名);
举例实测如下:
用PyCharm新建一个Python工程后,新建两个py文件,文件名分别为AAA.py和BBB.py

然后在AAA.py中写上如下代码:

print('当前AAA.py中__name__的值为:', __name__)

在BBB.py中写上如下代码:

import AAA

然后分别运行这两个Python文件,结果如下:
运行AAA.py的结果如下:

运行BBB.py的结果如下:

这个示例除了应证了上面说的py文件的两种使用方式,还表明使用import导入py文件/模块时,这个被导入的py文件中没有缩进的代码会被全部执行一遍。
这样就带来了一个问题,如果我在导入模块AAA.py时如果有想代码不想被执行,那么该怎么做呢?语句“if __name__ == ‘__main__’”就能实现这个作用,具体怎么用,有朋友看了上面的例子应该已经明白了,如果还不明白,请看下面这个例子:
修改上面的AAA.py的代码为如下代码:

print('\n')
print('当前AAA.py中__name__的值为“{}”'.format(__name__))
if __name__ == '__main__':print('\n')print('当前运行的文件是AAA.py')
else:print('\n')
print('当前AAA.py是作为模块被其它py文件导入')

再次分别运行AAA.py和BBB.py,结果分别如下:


可见通过语句“if __name__ == ‘__main__’,就能判断出一个py文件是直接运行还是作为模块文件被别的py文件导入的,进而通过这个判断实现一些代码的不被执行。
那么通常来说哪些代码不希望被执行呢?当文件被作者定义为一个模块时,里面难免含有一些测试代码,当模块被import时,这些代码是不希望被执行的。

Python代码中的if __name__ == ‘__main__‘的作用是什么?相关推荐

  1. if __name__ == __main__:什么意思_秒懂Python编程中的if __name__ == 'main' 的作用和原理...

    来源:菜鸟分析 链接: https://zhuanlan.zhihu.com/p/34112508 一天偶然发现知乎上有篇关于对python编程中的if __name__ == 'main'的理解陈述 ...

  2. python编程中的if __name__ == 'main': 的作用和原理

    <背景> 在大多数编排得好一点的脚本或者程序里面都有这段 if __name__ == 'main': <这段代码的功能> 一个python的文件有两种使用的方法: ➤第一是直 ...

  3. python编程中的if __name__ == 'main': 的作用和原理[2]

    这个问题来自于知乎用户的提问,当时看到这个问题,我只是做了下简单的回答.后来我发现,对于很多人来说,更准确的说应该是大部分的 Python 初学者,对这个问题理解的不是很深刻.所以这里我来做下总结,并 ...

  4. python编程中的if __name__ == 'main' 的作用和原理

    在大多数编排得好一点的脚本或者程序里面都有这段if __name__ == 'main': ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与大家分享一下. 1.代码的功能 一个pyth ...

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

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

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

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

  7. 如何简单地理解Python中的if __name__ == '__main__'

    如何简单地理解Python中的if __name__ == '__main__' 文章目录: 一.摘要 二. 程序入口 虽然已经知道这个具体的用法,但是这篇文章有很多细节写的还是很好,决定转载一下,日 ...

  8. Python 中的 if __name__ == __main__ 该如何理解

    Python 中的 if __name__ == "__main__" 该如何理解 原文链接: http://blog.konghy.cn/2017/04/24/python-en ...

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

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

最新文章

  1. Ajax的get、post和ajax提交
  2. 爱奇艺称告别唯流量时代 正式关闭显示前台播放量
  3. 荣获中国音视频产业大会「科技创新奖」,网易云信彰显行业领先水平
  4. 【数据结构】线性表的链式存储-单链表
  5. Linux sed工具用法
  6. md5字符串输入c语言,请问C语言怎么实现对一长串字符进行MD5加密?
  7. tomcat java_opts 最大_tomcat性能优化(JAVA_OPTS)
  8. python读音有道-centos7安装有道词典(不能发音和取词)
  9. 决策树算法小结(二) C4.5原理及代码实现
  10. Linux install sogou input method
  11. 如何使用IDEA运行Spring实战(第四版)代码
  12. Java线程状态分析/线程状态转换图
  13. cmos逻辑门传输延迟时间_半导体学习日记-CMOS器件面临的挑战
  14. 阿里褚霸专访-揭秘技术男开挂升级的职业路径(回帖有奖)
  15. python输入一个三位整数、输出三位数之和_编写程序,从键盘输入一个3位的正整数,输出它的百位数,十位数和个位数,并且计算它的和...
  16. Project directory ‘x/x/x‘ is not part of the build defined by settings file ‘x/x/x‘. If this is ...
  17. 2018前端校招总结
  18. 常用RL算法的主要特性
  19. Codeup——577 | 问题 C: 等腰梯形
  20. 海康工业相机USB相机问题排查思路—Windows 系统

热门文章

  1. python的优点和缺点-Python语言的优缺点,你知道吗?
  2. python数据处理实例-Python数据处理numpy.median的实例讲解
  3. python装饰器-理解Python装饰器(Decorator)
  4. python订单详细教程-Python抓取订单页面
  5. python代码格式-pyhon代码设计格式指南
  6. python课程内容-Python自学难吗?有哪些课程内容?
  7. python自动测试p-python 自动化测试 pytest 的使用
  8. python语言命令大全-Python常用命令之集合
  9. html5 svg 电路图,HTML5 SVG 分子结构图
  10. 创建型模式之Prototype