Python无需强制main函数因其脚本自上而下执行,但为支持模块复用、测试和命令行参数,惯例是封装main()函数并用if name == "__main__":调用。

Python 没有像 C 或 Java 那样强制要求的 main 函数,但有一个广泛使用的惯用写法:if __name__ == "__main__":,它起到类似“程序入口”的作用。
为什么 Python 不需要 main 函数?
Python 是解释型语言,脚本从上到下顺序执行。只要代码不是定义在函数或类里,就会直接运行。所以严格来说,整个脚本本身就可以是“主逻辑”。不过这样不利于模块复用和测试——别人导入你的文件时,你不希望其中的业务代码自动执行。
如何模拟 main 函数?
标准做法是把主逻辑封装进一个函数(常叫 main()),再用 if __name__ == "__main__": 控制是否调用它:
def main():
print("这是主程序逻辑")
if __name__ == "__main__":
main()
这样做的好处:
立即学习“Python免费学习笔记(深入)”;
本文档主要讲述的是Python之模块学习;python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题。模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块(内置函数)不需要导入外。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 代码结构更清晰,主流程一目了然
- 该文件可被其他模块安全导入,
main()不会意外执行 - 方便单元测试(可以单独调用
main()或跳过它) - 支持命令行参数解析(比如搭配
argparse)
实际项目中常见写法
很多脚本还会加上参数处理和异常兜底:
import sys
def main():
args = sys.argv[1:]
if not args:
print("请提供参数")
return
print(f"收到参数:{args}")
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("\n已退出")
也可以用 argparse 做更规范的命令行接口,main() 就成了统一入口。
基本上就这些。没有硬性规定,但加 if __name__ == "__main__": 是 Python 社区共识,不复杂但容易忽略。










