python中的os._exit()、sys.exit()和exit()/quit()函数
os._exit()
官方文档https://docs.python.org/zh-cn/3/library/os.html#os._exit
语法格式:
os._exit(n)
以状态码 n 退出进程(process),不会调用清理处理程序,不会刷新 stdio缓冲区,等等。
备注 退出的标准方法是使用 sys.exit(n)。而 _exit() 通常只应在 fork() 之后的子进程中使用。
它是 os 模块的一个函数,用于直接终止当前进程。
sys.exit()
官方文档https://docs.python.org/zh-cn/3/library/sys.html#sys.exit
sys.exit([arg])
引发一个 SystemExit 异常,表示打算退出解释器(interpreter)。。
可选参数 arg 可以是表示退出状态的整数(默认为 0)
它是sys 模块中的一个函数。
exit()/quit()
这两个实际上是内置函数,一般用于交互式解释器中用于退出操作。
python交互式解释器中有一个类似于>>>的提示符,这表示Python解释器正在等待您输入代码,每输入一行代码后,解释器会立即执行并显示输出——立即看到结果。
下面是一个使用sys.exit()的示例,源码如下:
import sys
def divide(a, b):
try:
result = a / b
print(f"The result of {a}/{b} is {result}")
except ZeroDivisionError:
print("Error: Cannot divide by zero!")
sys.exit(1) # 如果除数为零,程序异常退出并返回状态码1
divide(10, 2)
divide(30, 0)
在上面的示例中,如果输入的除数为零,程序会打印错误信息并调用sys.exit(1)来异常退出程序,同时返回状态码1。
输出:
The result of 10/2 is 5.0
Error: Cannot divide by zero!
需要注意的是,通常程序在完成所有任务后会自动退出,不需要显式地使用sys.exit()函数,如果程序中需要在某个条件满足时立即终止程序的执行,可以使用sys.exit()。