这是地球上最大的新手问题,但我不确定。我写了一堆执行某些任务的函数,我想要一个“主”函数,例如,当我调用“someProgram.py”时,运行function1,function2并退出。我依稀记得一些关于“主要”的内容,但我不知道。
答案 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)
答案 4 :(得分:1)
当我读到你的问题时,你问的是如何定义一个主函数。实际上,这将通过以下方式完成:
def main():
function1()
function2()
return 0
然后你会在所有主文件的函数之外放置这样的代码:
if __name__ == "__main__":
sys.exit(main())
(当然,你需要一个导入系统来实现上述功能。)
A(现在有些旧,但仍然相关)post from Guido告诉更多。