Python 退出程序函数

您所在的位置:网站首页 python怎么结束程序 Python 退出程序函数

Python 退出程序函数

2024-07-12 11:35| 来源: 网络整理| 查看: 265

Python有4个不同的退出程序的函数,exit(),quit(),os_exit()和本文要介绍的sys.exit()。exit()和quit()是一样的,它俩的功能基本上与sys.exit()一样,只有os._exit()有些简单粗暴。

exit和quit函数 这两个函数的作用,就是直接退出程序,可以带一个参数作为程序的返回码,如果不带参数,默认就是返回0.

xinlin@ubuntu:~/test$ python3 -q >>> exit(111) xinlin@ubuntu:~/test$ echo $? 111 xinlin@ubuntu:~/test$ python3 -q >>> quit(222) xinlin@ubuntu:~/test$ echo $? 222 xinlin@ubuntu:~/test$ python3 -q >>> exit() xinlin@ubuntu:~/test$ echo $? 0 xinlin@ubuntu:~/test$ python3 -q >>> quit() xinlin@ubuntu:~/test$ echo $? 0

这两个函数一般在交互式的python解释器中使用。其实它俩也会抛出SystemExit异常,因此说跟sys.exit()一样。

sys.exit()函数 sys模块的exit函数,通过抛出一个SystemExit异常来尝试结束程序,Python代码可以捕获这个异常来进行一些程序退出前的清理工作,也可以不退出程序。sys.exit函数同样可以带一个参数来作为程序的退出码,默认是0.

>>> import sys >>> try: ... sys.exit(101) ... except SystemExit as e: ... print(repr(e)) ... print(str(e)) ... SystemExit(101) 101 >>>

看起来使用str()函数在except分支获取返回码,比较判断不同的返回码,并做响应的清理动作,是比较方便的(str与repr的区别)。另外一个细节,上面这段代码在Python解释器中执行,因为异常被捕获,所以不会导致解释器退出!

捕获了sys.exit()函数抛出的异常,处理之后,还要程序继续退出,就需要直接使用exit或quit函数。实践中,完整的使用sys.exit函数的逻辑应该是如下这样的代码:

import sys def main(): sys.exit(123) return if __name__ == '__main__': try: main() except SystemExit as e: if str(e) == '123': print('---123---') exit(123)

一般在python脚本中都选择使用sys.exit函数退出程序,可以有个异常捕获机制来做清理扫尾的工作,程序会更加灵活健壮。

os._exit()函数 这个函数简单粗暴,就是直接退出python解释器,后面的代码都不执行了!一般程序不推荐使用这种退出方式。

补充一个细节:

在python线程中,使用sys.exit(包括exit和quit),都只能实现退出子线程,而不能退出主线程;如果在子线程中调用os._exit,可以实现整个程序的退出。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3