搜索
首页后端开发Python教程为什么Python中没有main()函数?

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

Aug 28, 2023 am 11:05 AM
python函数调用python程序入口python运行逻辑

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

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

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

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

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

  • “主要功能”到底是什么?

  • 为什么有些编程语言需要使用main函数?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# 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__'

以上是为什么Python中没有main()函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:tutorialspoint。如有侵权,请联系admin@php.cn删除
Python与C:学习曲线和易用性Python与C:学习曲线和易用性Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python vs. C:内存管理和控制Python vs. C:内存管理和控制Apr 19, 2025 am 12:17 AM

Python和C 在内存管理和控制方面的差异显着。 1.Python使用自动内存管理,基于引用计数和垃圾回收,简化了程序员的工作。 2.C 则要求手动管理内存,提供更多控制权但增加了复杂性和出错风险。选择哪种语言应基于项目需求和团队技术栈。

科学计算的Python:详细的外观科学计算的Python:详细的外观Apr 19, 2025 am 12:15 AM

Python在科学计算中的应用包括数据分析、机器学习、数值模拟和可视化。1.Numpy提供高效的多维数组和数学函数。2.SciPy扩展Numpy功能,提供优化和线性代数工具。3.Pandas用于数据处理和分析。4.Matplotlib用于生成各种图表和可视化结果。

Python和C:找到合适的工具Python和C:找到合适的工具Apr 19, 2025 am 12:04 AM

选择Python还是C 取决于项目需求:1)Python适合快速开发、数据科学和脚本编写,因其简洁语法和丰富库;2)C 适用于需要高性能和底层控制的场景,如系统编程和游戏开发,因其编译型和手动内存管理。

数据科学和机器学习的Python数据科学和机器学习的PythonApr 19, 2025 am 12:02 AM

Python在数据科学和机器学习中的应用广泛,主要依赖于其简洁性和强大的库生态系统。1)Pandas用于数据处理和分析,2)Numpy提供高效的数值计算,3)Scikit-learn用于机器学习模型构建和优化,这些库让Python成为数据科学和机器学习的理想工具。

学习Python:2小时的每日学习是否足够?学习Python:2小时的每日学习是否足够?Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Web开发的Python:关键应用程序Web开发的Python:关键应用程序Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

Python vs.C:探索性能和效率Python vs.C:探索性能和效率Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具