美文网首页Python学习笔记
对if __name__ == '__main__'的理解

对if __name__ == '__main__'的理解

作者: kingron | 来源:发表于2018-04-26 11:46 被阅读0次

    1.对于C、C++以及Java等编程语言来说,程序需要一个主入口,先将程序编译为二进制文件再运行,所以在学习C语言的时候首先都会写main字样,也就是说程序会从main函数开始。而Python作为脚本语言,对程序的编译是逐行进行的,所以不需要在最开始就写上main。

    2.一个python源码文件(以.py为结尾的)可以被直接运行,也可以被导入,也就是常见的import方法。这两种方法都会执行顶层的代码,但下层的部分代码也许没有必要运行(但有存在的必要)。此时,就可以引入该方法。

    3.每个Python源码文件都含有内置的变量__name__,当文件被作为脚本直接运行时,__name__ == 文件名(包含.py);当文件被import到其他源码文件时,__name__ == 文件名(不包含.py)。而__main__ == 当前执行文件的名称,所以当文件被作为脚本直接运行时,__name__ == __main__。

    4.因此,if __name__ == '__main__' 就相当于是 Python 模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于 __name__ 的值。

    参考:

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

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

    3.if __name__ == '__main__' 如何正确理解? - 知乎用户的回答 - 知乎

    相关文章

      网友评论

        本文标题:对if __name__ == '__main__'的理解

        本文链接:https://www.haomeiwen.com/subject/wveplftx.html