我有一个简单的Python脚本,如果满足条件,我想停止执行。
例如:
done = True
if done:
# quit/stop/exit
else:
# do other stuff
从本质上讲,我正在寻找与函数主体中的"return"关键字等效的东西,该关键字允许代码流退出函数而不执行剩余的代码。
要退出您可以使用的脚本,
import sys
sys.exit()
还可以提供退出状态值,通常是整数。
import sys
sys.exit(0)
以零退出,这通常被解释为成功。 非零代码通常被视为错误。 默认值为零退出。
import sys
sys.exit("aa! errors!")
打印"啊!错误!",并以状态代码 1 退出。
os 模块中还有一个 _exit() 函数。 sys.exit() 函数引发 SystemExit 异常以退出程序,因此可以执行 try 语句和清理代码。 os._exit() 版本不这样做。 它只是结束程序而不执行任何清理或刷新输出缓冲区,因此通常不应使用它。
Python 文档表明 os._exit() 是结束通过调用 os.fork() 创建的子进程的正常方式,因此它在某些情况下确实有用。
您可以将脚本的主体放入一个函数中,然后可以从该函数返回。
def main():
done = True
if done:
return
# quit/stop/exit
else:
# do other stuff
if __name__ == "__main__":
#Run as main program
main()
import sys
sys.exit()
您可以使用:
import sys
sys.exit(...)
或:
raise SystemExit(...)
可选参数可以是退出代码或错误消息。这两种方法是相同的。我曾经更喜欢 sys.exit,但我最近转向提高 SystemExit,因为它似乎在其余代码中更突出(由于 raise 关键字)。
exit() 应该可以解决问题
尝试
sys.exit("message")
就像 perl
die("message")
如果这是你要找的。它终止脚本的执行,即使它是从导入的模块/def/function 调用的
exit() 应该这样做。
如果整个程序应该停止使用 sys.exit(),否则只需使用空返回。