为什么一些python脚本以这种方式声明main()?
这个问题在这里已经有了答案:
只有当您将脚本作为主脚本运行时(例如python my_script.py
),此行才允许默认运行某些功能。
当脚本既可以作为主程序使用,也可以在另一个python模块或python shell中导入时,这很有用。 在后一种情况下,你几乎肯定不希望main(或其他模块功能)在导入时运行,这是默认情况下当解释器加载脚本时发生的情况。
如果你永远不会在其他代码或python shell中导入这个脚本,那么你不需要这一行。 不过,将代码设计为模块化和导入友好是很好的做法; 甚至可能出现的丢弃脚本(例如,绘制一些数字,解析一些日志等)可能在更大范围内有用。 特别是在交互式shell会话中,例如使用ipython
。 而且成本很小:在函数中封装语句并添加ifmain
。
当你创建一个模块时,这通常是有用的,或者如果你打算在运行另一个脚本时导入你的scipt。 仅当该脚本是执行的主脚本时, __name__ == "__main__"
为真,因此它避免了在导入语句中运行后续代码。
上一篇: Why do some python scripts declare main() in this manner?