将python程序分解为函数后,如何将其作为主函数?

时间:2010-01-24 03:42:27

标签: python

这是地球上最大的新手问题,但我不确定。我写了一堆执行某些任务的函数,我想要一个“主”函数,例如,当我调用“someProgram.py”时,运行function1,function2并退出。我依稀记得一些关于“主要”的内容,但我不知道。

5 个答案:

答案 0 :(得分:12)

Python脚本不是函数集合,而是语句集合 - 函数和类定义只是将名称绑定到函数或类对象的语句。

如果在程序的顶部或中间放置一个print语句,它将正常运行而不具备任何功能。这意味着您可以将所有主要代码放在文件的末尾,它将在脚本运行时运行。但是,如果您的脚本是导入而不是直接运行,那么该代码也将运行。这通常不是你想要的,所以你想要避免这种情况。

Python提供了__name__全局变量来区分何时导入并直接运行脚本 - 它被设置为脚本运行的名称。如果导入脚本,则它将是脚本文件的名称。如果它直接运行,它将是"__main__"。因此,您可以在程序的底部放置if __name__ == '__main__':,只有在直接运行脚本时,此if块内的所有内容才会运行。

实施例

if __name__ == "__main__":
    the_function_I_think_of_as_main()

答案 1 :(得分:3)

第一次导入python模块时,会运行它的主程序段。您可以区分自己运行和导入另一个程序:

if __name__ == "__main__":
    function1()
    function2()
else:
    # loaded from another module

答案 2 :(得分:2)

if __name__ == '__main__':
  run_main()

答案 3 :(得分:1)

这是以下习语:

if __name__ == "__main__":
   yourfoo()

Also read this

答案 4 :(得分:1)

当我读到你的问题时,你问的是如何定义一个主函数。实际上,这将通过以下方式完成:

def main():
    function1()
    function2()
    return 0

然后你会在所有主文件的函数之外放置这样的代码:

if __name__ == "__main__":
    sys.exit(main())

(当然,你需要一个导入系统来实现上述功能。)

A(现在有些旧,但仍然相关)post from Guido告诉更多。