if __name__ == '__main__': 是什么东西

网友投稿 241 2022-09-03


if __name__ == '__main__': 是什么东西

今天写代码又遇到了这个东西,已经不是第一次了。我下别人的代码经常看到这玩意儿,但是我自己写的时候从来没写过,我学python的时候教程也没写过这玩意儿(我看的是python三剑客第一本入门的python)。

所以今天就特意查了一下这是个什么玩意儿。

原来是这样的,就是​​if __name__ == '__main__':​​包裹的内容只能在当前python文件中运行,当该文件import到其他文件时,​​if __name__ == '__main__':​​中的代码就不会被运行。

写个demo1:

print("我是demo1")print(__name__)if __name__ == '__main__': print("我是demo1-mian后边的东西") print(__name__)

运行之后是这个样子的:

再搞个demo2:

import demo1print(__name__)

运行之后是这样的:

我们看到demo2确实没有输出demo1​​if __name__ == '__main__':​​之后的内容。

并且分析一下输出:

demo1中的两个​​print(__name__)​​​输出的都是​​__main__​​demo2中的​​print(__name__)​​​输出的也是​​__main__​​​,但是import过来的​​print(__name__)​​​(就是demo1​​if __name__ == '__main__':​​之前的那个)输出的是demo1

__name__

由此我们可以知道:

在本文件中​​__name__​​​就是​​__main__​​当文件被import到其他文件中时,被import的文件中的​​__name__​​就会显示所在文件名。

换个更专业的说法:

​​__name__​​是一个变量,前后加了双下划线是因为这是系统定义的名字(python中系统变量都是双下划线开头结尾,普通变量不使用这种命名方式)​​__name__​​是用来标识模块名字的一个系统变量。这里分两种情况:第一种情况指的是当前运行的模块,那么当前模块__name__的值就为"__main__";第二种情况指的是该模块是使用import导入的模块,那么这个被导入模块的__name__变量的值为该模块的文件名(去掉.py)。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:进程、线程和协程有什么区别(线程与协程的区别)
下一篇:【车位检测】基于计算机视觉实现停车场空位识别附matlab代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~