python 中 os._exit(), sys.exit(), exit() 的区别是什么?
1. sys.exit(n)
-
退出程序引发SystemExit异常, 可以捕获异常执行些清理工作.
-
如果有捕获该异常的代码,那么后面的代码还是会执行。
-
一般主程序中使用此退出。
-
举例:
-
import sys try: sys.exit(0) except: print("异常捕获") # 可以执行print语句,因为sys.exit()调用出现了异常
-
-
2. os._exit(n)
-
会直接将python程序终止,之后的所有代码都不会执行。
-
常用在子进程的退出。
-
举例:
-
import os try: os._exit(0) except: print("异常捕获") # 不会执行print语句,前面os._exit()直接退出了程序
-
-
3. exit()/quit()
-
跑出SystemExit异常。
- 一般在交互式shell中退出时使用。