我理解它的目的,但是我想知道使用if __name__ == '__main__'
的最pythonic方法是什么?
我将所有代码放在main()
函数中并将其称为:
if __name__ == '__main__':
main()
或者不打扰那个并且只写那里的所有顶级代码:
if __name__ == '__main__':
# all top-level code...
答案 0 :(得分:5)
如果您在__name__
防护下编写所有代码,则永远不能重复使用该代码。另一方面,如果您将代码放在main()
函数中,您始终可以将该函数导入其他地方并调用它。
例如,在使用setuptools打包项目时,您可以将此用于在setup.py
中注册的控制台脚本。这样您就可以在不先安装脚本的情况下测试脚本,和将其作为已安装的脚本运行(在调用sys.path
函数之前将其添加到main()
)。
答案 1 :(得分:4)
我不知道一个人是否比另一个更惯用,但将一切放入main
函数并调用它的一个原因是局部变量查找比全局变量查找更快(参见{ {3}}获得解释)。
答案 2 :(得分:-2)
免责声明:我只知道CodeAcademy的一些Python。
我会去制作主要功能,然后调用它。它将您的代码组合成一个“组”。 JavaScript几乎完全相同,但他们称之为模块。他们制作这个功能,然后立即调用它。
JavaScript示例
(function() {
// Stuff here
})();