python中__name__的使用

枫铃3年前 (2021-07-10)Python259

这几天开始学习Python,遇到一些问题,也解决了一些问题。

其中if __ name__ == ‘__ main__’:这句估计很多和我一样的初学者都是不求甚解。
这里作一下解释:

1:__ name__是一个变量。前后加了爽下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
3:import的时候是要执行所import的模块的。
4:__ name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__ main__,通过if判断这样就可以执行“__ mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__ mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。

  1. 如果模块是被导入,__name__的值为模块名字
  2. 如果模块是被直接执行,__name__的值为’main
#Py1.py
#!/usr/bin/env python
def test():
  print '__name__ = ',__name__
if __name__ == '__main__':
  test()
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#Py2.py
#!/usr/bin/env python
import Py1.py
def test():
  print '__name__ = ',__name__
if __name__ == '__main__':
  test()
  print ‘Py1.py __name__ =,Py1.__name__

执行结果:

__name__=__main__
Py1.py __name__=Py1

通过结果可以知道,Py2.py直接执行,那么内建变量__ name__的值为__ main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。

if __name__ == '__main__':
  test(

相关文章

Python实现奖金计算两种方法的比较

应发奖金计算 简述&#x...

python 中argparse 实例解析

一 概念: argparse是python的一个命令行解析包。它可以使写用户友好的命令行接口变得非常容易。该模块定义什么参数是需要的ÿ...

python的文件读写操作

文件读写 读写文件是最...

python高阶函数的使用

1、map Pytho...

四种高性能数据类型,Python collections助你优化代码、简洁任务

四种高性能数据类型,Python collections助你优化代码、简洁任务

在这篇文章中,机器学习工程师 George Seif 介绍了 Python collections 模块最受欢迎的四种数据类型以及它们各自的使用...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。