import sys sys.exit() sys 模块文档 中的详细信息: sys.exit([arg]) 退出 Python。这是通过引发 SystemExit 异常来实现的,因此由 try 语句的 finally 子句指定的清理操作是有效的,并且可以在外部级别拦截退出尝试。 可选参数 arg 可以是给出退出状态的整数(默认为零),也可以是其他类型的对象。如果它是一个整数,则零被认为是“成功终止”,任何非零值都被 shell 等视为“异常终止”。大多数系统要求它在 0-127 范围内,否则会产生未定义的结果。一些系统有为特定退出代码分配特定含义的约定,但这些通常不发达; Unix 程序通常使用 2 表示命令行语法错误,使用 1 表示所有其他类型的错误。如果传递了另一种类型的对象,则 None 相当于传递零,并且任何其他对象都打印到 stderr 并导致退出代码为 1。特别是 sys.exit("some error message") 是发生错误时退出程序的快捷方式。 由于 exit() 最终“只”引发了异常,所以只有在主线程调用时才会退出进程,异常不会被拦截。 请注意,这是退出的“好”方式。下面的@ glyphtwistedmatrix 指出,如果你想要一个“硬退出”,你可以使用 os._exit(*errorcode*) ,尽管它在某种程度上可能是特定于操作系统的(例如,在 Windows 下它可能不会出现错误代码),并且它肯定不那么友好,因为它不允许解释器在进程终止之前进行任何清理。另一方面,它 确实 杀死了整个进程,包括所有正在运行的线程,而 sys.exit() (正如它在文档中所说)只有在从主线程调用时才退出,没有其他线程在运行。 原文由 pjz 发布,翻译遵循 CC BY-SA 4.0 许可协议
提前终止 Python 脚本的一种简单方法是使用内置的 quit() 函数。无需导入任何库,高效简单。 例子: #do stuff if this == that: quit() 原文由 j.m.g.r 发布,翻译遵循 CC BY-SA 4.0 许可协议
sys
模块文档 中的详细信息:请注意,这是退出的“好”方式。下面的@ glyphtwistedmatrix 指出,如果你想要一个“硬退出”,你可以使用
os._exit(*errorcode*)
,尽管它在某种程度上可能是特定于操作系统的(例如,在 Windows 下它可能不会出现错误代码),并且它肯定不那么友好,因为它不允许解释器在进程终止之前进行任何清理。另一方面,它 确实 杀死了整个进程,包括所有正在运行的线程,而sys.exit()
(正如它在文档中所说)只有在从主线程调用时才退出,没有其他线程在运行。