0

0

为什么Python中没有main()函数?

王林

王林

发布时间:2023-08-28 11:05:06

|

1665人浏览过

|

来源于tutorialspoint

转载

为什么python中没有main()函数?

在本文中,我们将了解为什么 Python 中没有 main() 函数。

毫无疑问,Python 没有所谓的main函数,但是,关于 互联网上经常引用“Python的主要函数”和“建议编写 主要功能。"

他们的目的可能是复制最初的主要方法,但许多人 被误导(或误解)并因此创建极其复杂的代码。

在开始之前,我们将回答以下两个问题 -

一些编程语言,例如 C/C++、C#、Java、Go、Rust 等,采用 main函数作为程序的执行入口,有特定的含义 -

  • 这个主函数名称是必需的,意味着必须有一个主函数 功能。

  • 因为只能有一个main函数,所以程序的每一个入口都是 独一无二。

  • 语法格式有特定的要求并且遵循非常一致(固定)的 模板。

为什么一定要做main入口函数 强制性的?

这些是编译语言,需要将代码编译成可执行文件 操作系统/引导加载程序的二进制文件来查找程序的启动,因此您 必须定义这一函数。

简单地说,有一个重要的开始,必须在大量的内容中定义 可执行代码。

主要功能是这些语言的基本有机特征。

但是,当我们返回 Python 时,情况发生了巨大变化。

  • Python 是一种解释语言,也称为脚本语言。这 运行过程从上到下,逐行运行,这意味着它的 起点已知。

  • 每个.py文件都是一个可执行文件,可以用作程序的入口点, 意味着程序的入口点是灵活的,并且不必遵循约定 已关注。

  • 在不指定入口文件的情况下执行Python项目时(越多 典型的命令行,例如“python -m http.server 8000”),可能是由于 存在 main.py 文件,该文件在包中作为“文件”执行以下操作 操作。

综上所述,脚本语言Python不同于编译语言。它可以 在单个模块(即 .py 文件)级别选择灵活的执行技术, 或者在由许多模块组成的包级别,不像其他语言不能 无需明确定义的条目即可实现。

也就是说,Python不需要程序员指定统一的入口(无论是 它是语法级别的函数、类或其他)。

有些用户可能会感到困惑,因为他们经常遇到或编写以下代码 -

多墨智能
多墨智能

多墨智能 - AI 驱动的创意工作流写作工具

下载
# defining the main function using the def keyword
def main():
   ……
if __name__ == '__main__':
   main()

这不是Python的main函数吗?相信很多人都同意! -

不,不是。

除了函数名是“main”之外,它与正统的 main 没有任何联系 我们之前描述过的函数,它不是必需的,也不一定控制顺序 的程序执行。如果没有它,它不会导致任何语法问题。

有些人希望确定一个“main”函数来强调其“主要”地位并 将其作为第一个要人工执行的函数。

他们可能认为具有此类名称的函数更容易记住。

他们可能希望编写 if name =='main' 来证明 main() 仅在以下情况下运行 当前脚本直接执行,导入时不应执行 其他模块。

但是,我们不建议采用这种写作风格。

最常见的例子:只有几十行代码或一个脚本文件 实现了一个简单的功能(一个小爬虫,用乌龟画一幅画等), 但它们的写法都和以前一样。

由于以下原因,不建议写 if name__ == '__main' -

  • 首先,如果因为没有导出选项而只有一个文件。

  • 二、如果有多个文件,则将这句话写在入口文件(main.py)中 强烈劝阻。因为它是起点,所以它的内容不应该是 exported for use in 其他模块。

  • 最后,把这个判断写在文件众多的非入口文件中是不行的 建议,因为最多可以做的是创建其中一些测试 程式。但是,测试代码应该分开并存储在单独的 目录或文件。

每次遇到这种复杂的代码,我都会不假思索地担心。为什么 if 语句是你写的吗?如果可能的话,将主函数分开,甚至不要 将其包装在一个函数中!

总结

  • 摆脱惯性思维,构建真实的代码。主要入口函数 是某些语言所特有的,不应在 Python 中使用。你应该 理解脚本语言的特点并用简单易懂的语言编写 吸引人的风格。

  • 使用main.py而不是main()。因为Python的程序执行单元是 脚本文件而不是函数或类,入口文件应命名为main.py, 内部功能由需求决定。

  • 如果可行,使用main.py作为入口文件。这个文件组合起来使用很简单 在命令行中使用“-m”参数。

结论

在本文中,我们了解了为什么 Python 与其他编程语言不同,缺乏 主功能。我们还了解了条件 __name__ == '__main__'

相关专题

更多
Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

56

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

28

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

389

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

116

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

9

2026.01.21

无人机驾驶证报考 uom民用无人机综合管理平台官网
无人机驾驶证报考 uom民用无人机综合管理平台官网

无人机驾驶证(CAAC执照)报考需年满16周岁,初中以上学历,身体健康(矫正视力1.0以上,无严重疾病),且无犯罪记录。个人需通过民航局授权的训练机构报名,经理论(法规、原理)、模拟飞行、实操(GPS/姿态模式)及地面站训练后考试合格,通常15-25天拿证。

49

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.4万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

Pandas 教程
Pandas 教程

共15课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号