为什么名为“main”的函数没有任何特殊意义?

2024-05-14 21:58:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,为什么一个名为main的函数不像在C和Java中那样有任何特殊的意义?在

如果程序员从C或Java切换到Python呢。他应该留下吗 在Python中使用main也像在C或Java中一样,这是他现在的风格 或者从广义上说,它是有害的 用Python编程?在

编辑:我浏览了这篇文章,其中有一个很好的例子提到了为什么第一次程序员应该避免使用pythonmain in python harmful中的main。在


Tags: 函数in编辑风格main编程java例子
3条回答

在Python中,的作用是main()函数:

if __name__ == '__main__':
  # Your main function

只有当Python文件未作为模块导入时,if块中的代码才会运行。在

如果您决定使用这个难看的main()函数,那么Python的等效函数应该如下所示:

^{pr2}$

我觉得不太好看。在

这样的程序员应该这样做:

if __name__ == "__main__":
    # run stuff

如果未导入模块,则变量__name__设置为"__main__"。在

您还应该问,为什么在C和Java中main有特殊的意义。这只是语言设计者的选择。main很可能被称为start或{},但有人选择了{},它就卡住了。在

在Python中,没有理由不能调用函数main,并将其作为程序的起点。但是,Python有自己的语法来标识某个文件是否与main等价:

__name__ == "__main__"

这通常被包装为if的一部分,并且可以只在调用main函数中有一行来实际启动程序。在

Python设计的一部分和许多(全部?)脚本语言就是代码可以简单地内联编写。你不必把所有的东西都包装在一个函数中。因此,许多简单的脚本根本不需要任何函数。例如,一个旋转日志文件的cron作业可以作为一个没有定义函数的python文件中的代码块来编写。在

在这种情况下,不需要main方法。在

在许多方面不需要main,这使得语言更加灵活,特别是对于更简单的任务。在

附录:

为编辑添加一些上下文。那篇文章的论据很差。实际上,函数名冲突并不少见,因为有许多模块执行相同或相似的操作(内核中不太多,但一旦开始使用pip,就会遇到奇怪的冲突)。因此,使用描述性函数名并避免执行from foo import *操作是有益的。在

与C++程序员普遍认为用{{CD13}}污染命名空间是不好的形式一样,Python程序员通常认为用{{CD14}}污染命名空间是不好的形式,尤其是因为如果到处使用它会造成滚雪球效应。在

最后,您不太可能在程序中调用2个函数main。你在其他地方更容易发生名字冲突。真正的危险是通配符导入,而不是main函数。在

相关问题 更多 >

    热门问题