我不理解Python中的main()函数[关闭]

xbp102n0  于 2024-01-05  发布在  Python
关注(0)|答案(1)|浏览(152)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

8小时前关闭
Improve this question
我是一个Python初学者,两个星期前开始学习Python。在第一堂课上,教授解释了main()函数,但是我没有理解。我有两个问题:

  1. main函数有什么作用?
    1.为什么我不能回到我的程序的开始,定义任何我想使用的函数,而不写一个主函数?
    我试着在谷歌上搜索答案,但没有找到任何有用的东西。
dfddblmv

dfddblmv1#

与许多C派生的编程语言(包括C、C++、C#、Java和C++)中的main函数不同,Python中的main函数没有技术意义,但仍然是一种约定,表示模块在作为脚本调用时的逻辑。
Python中的main函数习惯上是从名称保护中调用的,以确保当代码作为模块导入时,其逻辑不适用,在这种情况下,__name__将被设置为模块的名称而不是'__main__'

  1. def main():
  2. ... # logics when run as a script
  3. if __name__ == '__main__':
  4. main()

字符串
但是,为什么不直接在名称保护中编写这些逻辑而不定义单独的main函数呢?
有两个主要的好处(双关语不是故意的):
1.它使得为名称保护所保护的逻辑编写单元测试变得容易得多,因为否则您将不得不求助于各种weird loaders来将逻辑添加到测试覆盖率中。
1.它允许其他模块更容易地导入模块并运行名称保护所保护的逻辑-模块提供的命令行接口有时比其他API更容易使用,也更友好,因此有些人可能更喜欢使用命令行参数来调用模块的main函数。如果主逻辑直接放置在名称保护中,那么它将再次变得更好。就像在理由#1中一样不方便。
更多的例子,你可以参考标准库中的许多常见模块,如astdistimeitgzipwebbrowserpdb等。

展开查看全部

相关问题