python中__name__的使用

Posted 花生咪6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中__name__的使用相关的知识,希望对你有一定的参考价值。

这几天开始学习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__’

复制代码
复制代码
1 #Py1.py
2 #!/usr/bin/env python
3 def test():
4   print \'__name__ = \',__name__
5 if __name__ == \'__main__\':
6   test()
复制代码
复制代码
复制代码
复制代码
1 #Py2.py
2 #!/usr/bin/env python
3 import Py1.py
4 def test():
5   print \'__name__ = \',__name__
6 if __name__ == \'__main__\':
7   test()
8   print ‘Py1.py __name__ = ’,Py1.__name__
复制代码
复制代码

执行结果:

__name__=__main__
Py1.py __name__=Py1

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

参考博客:https://www.cnblogs.com/xyu1/p/7083145.html

以上是关于python中__name__的使用的主要内容,如果未能解决你的问题,请参考以下文章

Python中if __name__ == '__main__': 的解析

Python中if __name__ == '__main__': 的解析

python编程中的if __name__ == 'main与windows中使用多进程

一文弄懂Python中的 if __name__ == __main__

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

python if __name__ == '__main__'