其他人已经回答了,但我想我还有其他的东西需要补充。
main()语句调用if的原因(无特定顺序):
其他语言(如C和Java)具有main()函数,该函数在执行程序时调用。 使用这个if,我们可以让Python像他们一样,这对许多人来说更为熟悉。
代码将更清晰,更易于阅读,更有条理。 (是的,我知道这是主观的)
它可以将main()作为模块的python代码而没有令人讨厌的副作用。
这意味着可以针对该代码运行测试。
这意味着我们可以将该代码导入交互式python shell并测试/调试/运行它。
main()内部的变量是本地变量,而外部变量是全局变量。 这可能会引入一些错误和意外行为。
但是,您不需要编写main()函数并在if语句中调用它。
我自己通常开始编写没有任何功能的小型一次性脚本。 如果脚本变得足够大,或者如果我觉得将所有代码放在函数中会使我受益,那么我重构代码并执行它。 当我编写main()脚本时也会发生这种情况。
即使您将代码放在main函数中,也不需要完全按照它编写代码。 一个整洁的变化可能是:
import sys
def main(argv):
# My code here
pass
if __name__ == "__main__":
main(sys.argv)
这意味着您可以从其他脚本(或交互式shell)调用main()传递自定义参数。 这可能在单元测试或批处理时很有用。 但请记住,上面的代码需要解析argv,因此使用传递已经解析的参数的不同调用可能会更好。
在我编写的面向对象的应用程序中,代码如下所示:
class MyApplication(something):
# My code here
if __name__ == "__main__":
app = MyApplication()
app.run()
所以,随意编写更适合您的代码。:)