所谓入口点,就是这个程序被执行的第1条语句位置,是main()函数的开始
对于很多编程语言来说,程序都必须要有一个入口,比如C,C++,以及完全面向对象的编程语言Java,C#等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C和C++都需要有一个main函数来作为程序的入口,也就是程序的运行会从main函数开始。同样,Java和C#必须要有一个包含Main方法的主类来作为程序入口。而Python则有不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
一段好的示例代码胜过一切
这里有俩个程序
const.py用来定义常数PI
area.py
需要PI这个常数来计算圆的面积const.py
代码如下:PI
=
3.14def
main
():当运行pythonconst.py,输出
PI:3.14
area.py
(导入PI的值来计算圆面积)代码如下fromconstimportPI
def
calc_round_area
(radius):return
PI*
(radius**
2)def
main
():当运行pythonarea.py,因为导入了const,输出
PI:3.14roundarea:12.56
可以看到
const.py里面的main()也被执行了
但这是我们所不希望的
怎么办?
只需在const.py中加入一句:
PI
=
3.14def
main
():if
__name__==
"__main__":main()_name_代表当前模块的名字
当我们再次运行“pythonarea.py”时
对于const.py来说
_name_不再是_main_
因此其中的main()不再被执行
最终得到我们想要的输出
roundarea:12.56
以上示例代码及注释部分取自博文(非常好的总结文章,还详细解释了_
name_
):Python中的if__name__=='__main__'该如何理解