深圳微商城网站设计多少钱,12333公共招聘网,行业数据统计网站,公众号制作公司毫无疑问#xff0c;Python中没有所谓的 main 入口函数#xff0c;但在网上经常有文章提到“Python中的main函数”和“建议编写main函数”等。他们的目的可能是模仿真实的 main 函数#xff0c;但是经常有很多人被误导#xff08;或误解#xff09;并编写非常繁琐的代码。…毫无疑问Python中没有所谓的 main 入口函数但在网上经常有文章提到“Python中的main函数”和“建议编写main函数”等。他们的目的可能是模仿真实的 main 函数但是经常有很多人被误导或误解并编写非常繁琐的代码。在开始本文之前让我们回答以下两个问题所谓“ main 函数”是什么意思为什么有些编程语言需要强制编写一个 main 函数一些编程语言使用 main 函数作为程序的执行入口如C/C、C语言、java、GO、RIST等这些语言具有特定的含义这个 main 函数名是必需的这意味着必须有一个 main 函数。最多只能有一个 main 函数这意味着程序的条目是唯一的。语法格式有特定要求带有相对固定的模板。为什么要强制使用 main 入口函数这些语言是编译语言需要将代码编译成可执行的二进制文件以便操作系统引导加载程序找到程序的开头因此需要定义这一个函数。简单地说有一个重要的开始需要定义在一大堆可以用于执行的代码中。不难看出main 函数是这些语言不可或缺的有机组成部分。但是当我们再次审视Python时情况就完全不同了。Python是一种解释语言即脚本语言。运行过程是自上而下逐行进行的这意味着它的起点是已知的。py 文件是一个可执行文件可以作为整个程序的入口文件这意味着程序的入口是灵活的不必遵循任何约定有时候我们运行Python项目时没有指定入口文件命令行比较常见如“python -m http.server 8000”可能是 main.py 文件它在包中作为“文件”执行。总之这意味着脚本语言 Python 与编译语言不同。无论是在单个模块级别即.py文件还是在由多个模块组成的包级别它都可以选择灵活的执行方法这与其他没有定义良好的条目就无法实现的语言不同。换句话说Python不需要规定程序员必须在语法级别定义一个统一的条目无论它是函数、类还是什么。有些学生可能会感到困惑因为他们经常自己看到或编写以下代码# main file
def main():……
if __name__ __main__:main()这不就是 Python 中的 main 函数吗相信我们很多人都是这么认为不是除了函数名是“ main”之外它与我们之前介绍的正统main函数没有半分的关系既不是强制的也不一定决定程序执行的顺序。没有它也不会引起任何语法问题。有些人想命名“main”函数的原因实际上是为了强调其“main”地位想将其安排为人为执行的第一个函数。他们可能认为这样的命名函数更容易记住。他们之所以要编写__name__ __main__的原因可能是想表明main仅在直接执行当前脚本时才运行而在将其导入其他模块时不希望运行。但是我个人不推荐这种书写方式。最明显的例子是只有几十行代码或者只是一个脚本文件实现了一个简单的功能一个小爬虫用乌龟画一幅画等等而且它们都是用与过去相同的样式来编写的。建议不要在 name__ __main 时写入首先如果只有一个文件因为没有导出的可能。其次如果有多个文件强烈建议不要在入口文件main.py中写这句话。从理论上讲因为它是起点所以不应导出其内容以供其他模块使用。最后也不建议在具有多个文件的非进入文件中写入此判断因为最多可以做的就是编写其中一些测试代码。尽管如此测试代码仍应分开并写在专用目录或文件中。每当我不经意间看到这些繁琐的代码时都会感到不舒服。为什么要写这个 if 语句如果可能的话你应该拆分 main 函数甚至不要把它包装成一个函数总结打破惯性思维写出真实的代码。main 入口函数对于某些语言是唯一的但是不应该在Python中进行使用。你应该了解脚本语言的特点写出简单优雅的代码风格。使用 main.py 而不是 main。因为Python的程序执行单元是一个脚本文件而不是函数或类因此建议命名入口文件 main.py并根据需要确定内部函数。如果可能使用 main.py 作为入口文件。该文件可以直接与命令行上的“-m”参数结合使用。--END--PS.本文是豌豆花下猫的文章他的公众号是Python猫python_cat大家可以去关注这个Python大牛哈~喜欢本文的同学记得转发点赞~更多内容欢迎大家关注我们的公众号为AI呐喊weainahan