正确理解Python中if __name__ == '__main__'

yipeiwu_com6年前Python基础

在Python,我们经常会编写

if __name__ == '__main__' 

这么一段代码,这段代码该怎么来理解?

这段代码的功能理解如下:

一个python的文件有两种使用的方法:

  • 作用一,直接作为脚本执行。
  • 作用二,import到其他的python脚本中被调用(模块重用)执行。

if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

运行原理

每个python模块(python文件)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)。如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。所以当模块被直接执行时,__name__ == '__main__'结果为真;而当模块被import到其他模块中时,__name__ == '__main__'结果为假,就是不调用对应的方法。

简而言之就是:__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。当模块被直接运行时,代码将被运行,当模块是被导入时,代码不被运行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

python socket通信编程实现文件上传代码实例

这篇文章主要介绍了python socket通信编程实现文件上传代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 写一个file...

python中文件变化监控示例(watchdog)

在python中文件监控主要有两个库,一个是pyinotify ( https://github.com/seb-m/pyinotify/wiki ),一个是watchdog(http:...

Django框架的中的setting.py文件说明详解

Django框架的中的setting.py文件说明详解

1.加载数据库,数据库的配置不能写死在seting.py文件中,下面的方式是读取另外一个文件,配置数据库: config = '' with open(os.path.join(BA...

Python pygorithm模块用法示例【常见算法测试】

本文实例讲述了Python pygorithm模块用法。分享给大家供大家参考,具体如下: pygorithm:一个用纯粹python编写的Python模块,用于纯粹的教育目的。只需导入所...

Python如何为图片添加水印

Python如何为图片添加水印

添加水印的主要目的是为了版权保护,使自己的图像不被抄袭或者恶意转载。网上有很多制作水印的工具,本帖介绍怎么使用Python-Pillow库给图片添加水印。 使用ImageMagick添加...