Python脚本必须将函数定义为main吗?

时间:2015-07-20 17:47:11

标签: python python-3.x coding-style

Python脚本必须/应该具有main()函数吗?例如,可以替换

if __name__ == '__main__':
  main()

if __name__ == '__main__':
  entryPoint()

(或其他一些有意义的名字)

2 个答案:

答案 0 :(得分:10)

使用名为main()的函数只是一种约定。你可以给它任何你想要的名字。

测试模块名称​​只是一个很好的技巧,以防止在代码未作为__main__模块执行时代码运行(即不是在Python脚本开始时导入时) ,但作为模块导入)。您可以在if测试下运行您喜欢的任何代码。

在这种情况下使用函数有助于通过将名称分流到本地名称空间来保持模块的全局名称空间整洁。命名函数main()是常见的,但不是必需的。

答案 1 :(得分:7)

不,Python脚本不必具有main()功能。它只是遵循约定,因为您放在if __name__ == '__main__':语句下的函数是真正完成脚本所有工作的函数,因此它是主函数。如果确实有函数名称可以使程序更容易阅读和更清晰,那么您可以使用该函数名称。

事实上,你甚至不需要 if __name__ == '__main__':部分,但这是一个很好的做法,而不仅仅是一个惯例。当您将文件作为模块导入时,它将阻止main()函数或您想要调用的任何其他函数。如果您不想导入脚本,可能不需要它,但它仍然是一个好习惯。有关详细信息以及为什么要执行此操作,请参阅What does if __name__ == "__main__": do?