在本文中,我们将了解为什么 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不需要程序员指定统一的入口(无论是它是语法级别的函数、类或其他)。
有些用户可能会感到困惑,因为他们经常遇到或编写以下代码 –
# defining the main function using the def keyworddef 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()函数?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2226111.html