文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

为什么Python没有main函数?

2024-12-11 18:58

关注

 

[[334521]]

毫无疑问,Python中没有所谓的主入口函数,但是互联网上经常有文章提到" Python的Main函数"和"建议编写Main函数"。

他们的目的可能是模仿真实的主要功能,但是许多人被误导(或误解)并编写了非常繁琐的代码。

在"为什么使用Python"系列的这个故事中,我们将讨论为什么Python不具有main函数? 最后,您将获得本系列前两个故事的链接。

在开始主题之前,让我们回答以下两个问题:

一些编程语言将主要功能用作程序的执行入口,例如C / C ++,C#,Java,Go,Rust等,它们具有特定含义:

为什么必须强制执行主函数?

这些语言是已编译的语言,需要将代码编译到可执行的二进制文件中,以便操作系统/引导程序找到程序的开始,因此需要定义此功能。

简而言之,需要在大量可用于执行的代码中定义一个重要的开始。

不难看出,主函数是这些语言不可或缺的有机组成部分。

但是,当我们再次查看Python时,情况就大不相同了。

总之,这意味着脚本语言Python与编译语言不同。 无论是在单个模块级别(即.py文件),还是在由多个模块组成的包级别,它都可以选择一种灵活的执行方法,这与其他语言不同 定义的条目。

换句话说,Python不需要规定程序员必须在语法级别定义一个统一的条目(无论是函数,类还是其他东西)。

一些学生可能会感到困惑,因为他们经常自己查看或编写以下代码:

 

  1. # main filedef main():  
  2. …… 
  3. if __name__ == '__main__':  
  4.   main() 

这不是Python的main函数吗? 相信我们很多人都这么认为!

不,这不对

除了函数名是" main"之外,它与我们前面介绍的正统main函数没有半分的关系,不是强制性的,也不一定确定程序执行的顺序。 没有它,就不会引起任何语法问题。

有些人想命名"main"函数的原因实际上是为了强调其"主入口"状态,并希望将其安排为人为执行的第一个功能。

他们可能认为这样的命名函数更容易记住。

他们之所以要编写__name__ =='main'的原因,可能是想表明main()仅在直接执行当前脚本时才运行,而在将其导入其他模块时不希望运行。

但是,我个人不推荐这种书写方式

最明显的例子:只有几十行代码或一个脚本文件实现了一个简单的功能(一个小的搜寻器,用乌龟画一幅画等),但是它们都是用相同的样式编写的 像之前一样。

如果name__ =='__main',不建议写

每当我不经思考就看到这些繁琐的代码时,都会感到不舒服。 为什么要写该if语句? 如果可能的话,您应该拆分主函数,甚至不将其包装为一个函数!

总结一下

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯