exit的用法python_python 中exit,sys.exit,os._exit用法
exit
exit() 可以退出某个程序,余下语句不执行,而其中的数字参数则用来表示程序是否是碰到错误而中断。
exit(1) 表示程序错误退出
exit(0) 表示程序正常退出
test.py:
#!/usr/bin/env python
# coding=utf-8
def test():
print 'start test'
#exit(0)
print 'end test'
def test1():
print 'start test2'
try:
err
except:
print 'Error'
exit(1)
print 'end test2'
if __name__ == "__main__":
test()
test1()
test.sh:
#!/bin/bash
python test.py
echo 'The exit status of above command is '$?
echo 'Finally'
当test.py脚本中exit(0)没有注释时, 运行test.sh脚本, 可以知道一) exit(0)退出了程序,后面的语句不执行;二)python脚本是正常退出,退出状态为0。
$ sh test.sh
start test
The exit status of above command is 0
Finally
当test.py脚本中exit(0)有注释时, 运行test.sh脚本, 可以知道一) exit(1)退出了程序,后面的语句不执行;二)python脚本是异常退出,退出状态为1。
$ sh test.sh
start test
end test
start test2
Error
The exit status of above command is 1
Finally
注意: 无论是exit(0) 还是 exit(1), 这个都是由人为判断去如何使用才恰当的。0的话只是告诉你正常退出, 1是告诉你发生了未知错误才退出的。
sys.exit
sys.exit() 可以退出某个程序,余下语句不执行,而其中的数字参数则用来表示程序是否是碰到错误而中断。功能和exit()基本类似, 都能抛出异常:
sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么余下代码还是会执行。
#!/usr/bin/env python
# coding=utf-8
import sys
def test():
print 'start test'
try:
sys.exit(0)
except SystemExit:
print 'continue'
finally:
print 'end test'
# $ python test.py
start test
continue
end test
注意:0为正常退出,其他数值(1-127)为不正常。一般用于在主线程中退出。
os._exit
直接将python程序终止,之后的所有代码都不会继续执行, 且不会有异常抛出。
#!/usr/bin/env python
# coding=utf-8
import os
import sys
def test():
print 'start test'
try:
os._exit(0)
except Exception:
print 'continue'
finally:
print 'end test'
# $ python test.py
start test
注意:0为正常退出,其他数值(1-127)为不正常。一般os._exit() 用于在线程中退出。
总结
exit()一般在交互式shell中退出时使用
sys.exit()的退出比较优雅,调用后会引发SystemExit异常,可以捕获此异常做清理工作。一般用于在主线程中退出。
os._exit()直接将python解释器退出,余下的语句不会执行, 不会抛出异常。一般用于在线程中退出 。
exit的用法python_python 中exit,sys.exit,os._exit用法相关推荐
- python idle退出_【ZZ】windows+python2.7在IDLE中执行sys.exit()出现的问题及解决方案
<简明Python教程>中第13章讲述"异常"时,有这样的一个实例, import sys try: s = raw_input('Enter something -- ...
- python items函数用法,Python中dictionary items()系列函数的用法实例
本文实例讲述了Python中dictionary items()系列函数的用法,对Python程序设计有很好的参考借鉴价值.具体分析如下: 先来看一个示例: import html # availab ...
- mysql中merge的用法_mysql中merge表存儲引擎用法介紹
mysql中merge表存儲引擎用法介紹: mysql的merge引擎類型允許你把許多結構相同的表合並為一個表.然后,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣.每一個合並的表必須有 ...
- python中numpy的用法_Python中numpy多维数组的用法
继上篇讲过numpy如何构建多维数组之后,今天我们来学习numpy多维数组的用法. 加法和减法操作要求操作双方的维数信息一致,均为M*N为数组方可正确执行操作. a = np.arange(4) 输出 ...
- python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)
本篇文章给大家带来的内容是关于python中字符串内置函数的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. capitalize() 首字母大写a='somewor ...
- zip函数的用法python_Python zip函数 python zip函数的用法
python 当中的zip( )函数到底是干嘛的? zip([1,2,3],['a','b','c']) 结果是 [(1, 'a'), (2, 'b'), (3, 'c')] 就是依次取出每一个数组的 ...
- mysql 枚举 enum用法_mysql中的枚举类型ENUM的用法:
mysql中的枚举类型ENUM的用法: (2010-06-18 13:44:13) mysql中的枚举类型ENUM的用法: mysql中的枚举类型ENUM是一个字符串对象,它的值是自表创建时在列规定中 ...
- python中字符串函数的用法_python中字符串内置函数的用法总结
capitalize() 首字母大写 a='someword' b=a.capitalize() print(b) ->Someword casefold()&lower() 所有字母变 ...
- python中try的用法_python中的 try...except...finally 的用法
python中的 try...except...finally 的用法 author:headsen chen date:2018-04-09 16:22:11 try, except, finall ...
最新文章
- 如何免费(轻成本)在网上做推广宣传
- 用YII实现多重查询(基于tag)
- CTFshow 反序列化 web268
- php俩个字符串合并,php分割合并两个字符串的函数实例
- 登录表单 参考新浪微博
- 微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?
- JSON解析中获取不存在的key
- 二 关键词---关键词的选择(二)
- 视频教程-PHP之socket入门实战websocket聊天室-PHP
- 设计物联网系统的步骤和原则有哪些
- 浏览器第二节:TCP协议:如何保证页面文件能被完整送达浏览器
- html css字体最小,css字体最小是多少?
- 微服务 细颗粒度的 soa
- excel如何将内容拆分
- 水果食用大全 -- 果品食疗 - 葡萄
- 请上传sku预览图后重新操作_增值税专用发票申请开票限额操作指南
- sklearn中StandardScaler()
- python版本降级
- python selenium爬取kuku漫画
- Unity多人游戏简单实例(一)快速入门
热门文章
- android cpu调度策略_「性能优化3.0」Android线程调度异步方式汇总
- Nanopore测序
- BahdanauAttention与LuongAttention注意力机制简介
- java中action请求_java模拟js发送action请求
- 绝对定位right:0;无效_CSS定位详解
- python opencv调节图片亮度与对比度
- Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven
- Flink并行度与Slot的关系
- 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...
- itest系统学生登录不了_四川省中小学生艺术测评管理系统登录平台https://www.soyohui.com/app/165187/...