在开始正题之前,先要来回答这两个问题:所谓的 “main 函数”是指什么?为什么有些编程语言需要强制写一个 main 函数?
某些编程语言以 main 函数作为程序的执行入口,例如 C/C++、C#、 Java、Go 和 Rust 等,它们具有特定的含义:
main 函数名是强制的,也就是要求必须有一个 main 函数
main 函数最多只能有一个,也就是说程序的入口是唯一的
语法格式有一定的要求,具有相对固定的模板
为什么要强制一个main入口函数呢?
这些语言是编译型语言,需要把代码编译成可执行的二进制文件,为了让操作系统/启动器找到程序的起点,所以要约定这一个函数。简单地说,就是在一大堆代码里,需要定义一个显著的可用于执行的开头。
不难看出,main 函数是那些语言中重要而不可缺的有机组成部分。
然而,我们再来看看 Python,情况就大不相同了。
Python 是解释型语言,即脚本语言,运行过程是从上往下,逐行解析运行,也就是说它的起点是可知的
每个 .py 文件就是一个可执行文件,都可作为整个程序的入口文件,也就是说程序的入口是灵活可变的,没有必须遵守的约定
有时候运行 Python 项目,并没有指定入口文件(命令行中较常见,例如"python -m http.server 8000"), 那可能是存在__main__.py文件,它所在的包被当成一个“文件”来执行了
归结起来,意思是说 Python 这种脚本语言跟编译型语言不同,它不管是在单个模块层面