已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
8小时前关闭
Improve this question的
我是一个Python初学者,两个星期前开始学习Python。在第一堂课上,教授解释了main()
函数,但是我没有理解。我有两个问题:
main
函数有什么作用?
1.为什么我不能回到我的程序的开始,定义任何我想使用的函数,而不写一个主函数?
我试着在谷歌上搜索答案,但没有找到任何有用的东西。
1条答案
按热度按时间dfddblmv1#
与许多C派生的编程语言(包括C、C++、C#、Java和C++)中的
main
函数不同,Python中的main
函数没有技术意义,但仍然是一种约定,表示模块在作为脚本调用时的逻辑。Python中的
main
函数习惯上是从名称保护中调用的,以确保当代码作为模块导入时,其逻辑不适用,在这种情况下,__name__
将被设置为模块的名称而不是'__main__'
:字符串
但是,为什么不直接在名称保护中编写这些逻辑而不定义单独的
main
函数呢?有两个主要的好处(双关语不是故意的):
1.它使得为名称保护所保护的逻辑编写单元测试变得容易得多,因为否则您将不得不求助于各种weird loaders来将逻辑添加到测试覆盖率中。
1.它允许其他模块更容易地导入模块并运行名称保护所保护的逻辑-模块提供的命令行接口有时比其他API更容易使用,也更友好,因此有些人可能更喜欢使用命令行参数来调用模块的
main
函数。如果主逻辑直接放置在名称保护中,那么它将再次变得更好。就像在理由#1中一样不方便。更多的例子,你可以参考标准库中的许多常见模块,如
ast
,dis
,timeit
,gzip
,webbrowser
,pdb
等。