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用法相关推荐

  1. python idle退出_【ZZ】windows+python2.7在IDLE中执行sys.exit()出现的问题及解决方案

    <简明Python教程>中第13章讲述"异常"时,有这样的一个实例, import sys try: s = raw_input('Enter something -- ...

  2. python items函数用法,Python中dictionary items()系列函数的用法实例

    本文实例讲述了Python中dictionary items()系列函数的用法,对Python程序设计有很好的参考借鉴价值.具体分析如下: 先来看一个示例: import html # availab ...

  3. mysql中merge的用法_mysql中merge表存儲引擎用法介紹

    mysql中merge表存儲引擎用法介紹: mysql的merge引擎類型允許你把許多結構相同的表合並為一個表.然后,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣.每一個合並的表必須有 ...

  4. python中numpy的用法_Python中numpy多维数组的用法

    继上篇讲过numpy如何构建多维数组之后,今天我们来学习numpy多维数组的用法. 加法和减法操作要求操作双方的维数信息一致,均为M*N为数组方可正确执行操作. a = np.arange(4) 输出 ...

  5. python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)

    本篇文章给大家带来的内容是关于python中字符串内置函数的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. capitalize() 首字母大写a='somewor ...

  6. zip函数的用法python_Python zip函数 python zip函数的用法

    python 当中的zip( )函数到底是干嘛的? zip([1,2,3],['a','b','c']) 结果是 [(1, 'a'), (2, 'b'), (3, 'c')] 就是依次取出每一个数组的 ...

  7. mysql 枚举 enum用法_mysql中的枚举类型ENUM的用法:

    mysql中的枚举类型ENUM的用法: (2010-06-18 13:44:13) mysql中的枚举类型ENUM的用法: mysql中的枚举类型ENUM是一个字符串对象,它的值是自表创建时在列规定中 ...

  8. python中字符串函数的用法_python中字符串内置函数的用法总结

    capitalize() 首字母大写 a='someword' b=a.capitalize() print(b) ->Someword casefold()&lower() 所有字母变 ...

  9. python中try的用法_python中的 try...except...finally 的用法

    python中的 try...except...finally 的用法 author:headsen chen date:2018-04-09 16:22:11 try, except, finall ...

最新文章

  1. 如何免费(轻成本)在网上做推广宣传
  2. 用YII实现多重查询(基于tag)
  3. CTFshow 反序列化 web268
  4. php俩个字符串合并,php分割合并两个字符串的函数实例
  5. 登录表单 参考新浪微博
  6. 微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?
  7. JSON解析中获取不存在的key
  8. 二 关键词---关键词的选择(二)
  9. 视频教程-PHP之socket入门实战websocket聊天室-PHP
  10. 设计物联网系统的步骤和原则有哪些
  11. 浏览器第二节:TCP协议:如何保证页面文件能被完整送达浏览器
  12. html css字体最小,css字体最小是多少?
  13. 微服务 细颗粒度的 soa
  14. excel如何将内容拆分
  15. 水果食用大全 -- 果品食疗 - 葡萄
  16. 请上传sku预览图后重新操作_增值税专用发票申请开票限额操作指南
  17. sklearn中StandardScaler()
  18. python版本降级
  19. python selenium爬取kuku漫画
  20. Unity多人游戏简单实例(一)快速入门

热门文章

  1. android cpu调度策略_「性能优化3.0」Android线程调度异步方式汇总
  2. Nanopore测序
  3. BahdanauAttention与LuongAttention注意力机制简介
  4. java中action请求_java模拟js发送action请求
  5. 绝对定位right:0;无效_CSS定位详解
  6. python opencv调节图片亮度与对比度
  7. Java 爬虫--类似Python的requests库--HttpClient, HttpAsyncClient--Maven
  8. Flink并行度与Slot的关系
  9. 华为鸿蒙概念机990,华为5G概念新机:鸿蒙OS系统+麒麟990+石墨烯 安卓机皇来势汹汹...
  10. itest系统学生登录不了_四川省中小学生艺术测评管理系统登录平台https://www.soyohui.com/app/165187/...