if __name__ == '__main__'的风格规范是什么?
我明白这样做的目的,不过我想知道用 if __name__ == '__main__'
的最“Python风格”的方法是什么?
我在考虑是把所有代码放在一个 main()
函数里,然后像这样调用它:
if __name__ == '__main__':
main()
还是不这么麻烦,直接把所有代码写在最外层:
if __name__ == '__main__':
# all top-level code...
3 个回答
-2
免责声明:我只在CodeAcademy学过一点Python。
我建议先写一个主函数,然后再调用它。这样可以把你的代码放在一个“组”里。JavaScript也是这么做的,不过他们叫它模块。他们先定义一个函数,然后马上调用它。
JavaScript示例
(function() {
// Stuff here
})();
4
我不知道哪种写法更常见,但把所有代码放在一个 main
函数里并调用它的一个原因是,查找局部变量的速度比查找全局变量快(想了解更多可以看看这个问题)。
5
如果你把所有代码都写在 __name__
保护下,这样的话你就无法重复使用这些代码。相反,如果你把代码放在一个 main()
函数里,你就可以在其他地方导入这个函数并调用它。
比如,当你用 setuptools 打包你的项目时,你会在 setup.py
中注册控制台脚本。这样,你可以在不先安装的情况下测试你的脚本,并且可以作为已安装的脚本运行(这会在调用你的 main()
函数之前,把依赖项添加到 sys.path
中)。