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