Python标准库学习 (上)
来源:互联网 发布:蒙特祖玛的宝藏4 mac 编辑:程序博客网 时间:2024/06/05 19:45
在《Python高手之路》第二章,标准库这一章,讲到了一些必须了解的标准库模块,有一些,是我之前就用到过的,类似codecs的库(有相见恨晚的感觉);也有一些库,,属于没有接触过的,可以在《Python标准库》里进行查询到相应的介绍和应用。
1、atexit:允许注册在程序退出时调用的函数!(标准库14.11章)https://docs.python.org/2/library/atexit.html
那么,什么时候用atexit, os._exit(), sys.exit(), sys.exitfunc 那?
首先,os._exit() 和 sys.exit() 都是直接退出,后面代码不执行的;
import sys print "hello" sys.exit(1) print "there"
代码退出,结果是 打印了 "hello"
区别在于, sys.exit()是触发了一个SystemExit 异常的,那么就可以捕获这个异常,来进行相应的操作;
import sysprint "hello"try: sys.exit(1)except SystemExit: print "world"而 os._exit()是直接退出,后续代码不执行,调用的是C语言的 _exit()
另一个 sys.exitfunc,其实atexit后台代码就是调用了sys.exitfunc,这个是代码调用退出结束前,调用
import sys def exitfunc(): print "world" sys.exitfunc = exitfunc print "hello"sys.exit(1)print "there"
这个代码,退出后,"there"是不会打印的,但是在退出前,后调用exitfunc,打印 "world"
而atexit是可以注册多个退出函数,并向注册的传递函数传递参数。这对于妥善的断开数据库连接,删除临时文件等可能很有用。不用为需要释放的资源维护一个特殊的列表,完全可以对于每个资源注册一个单独的清理函数。
import atexitdef my_clean(name): print 'my clean (%s)' % nameatexit.register(my_clean, 'first')atexit.register(my_clean, 'second')atexit.register(my_clean, 'third')
退出函数会按注册的逆序来调用,这个方法以模块导入顺序(相应的,也就是注册其atexit函数的顺序)的逆序完成模块的清理,这会减少依赖冲突。
my clean (third)my clean(second)my clean(first)
0 0
- Python标准库学习 (上)
- Python标准库(上)
- python学习标准库
- python学习标准库
- python标准库学习
- Python标准库学习
- Python 标准库——collections(上)
- python 标准库-argparse 学习
- Python 标准库一览(Python进阶学习)
- Python 标准库一览(Python进阶学习)
- 《python标准库》学习笔记1(__builtin__模块)
- Python学习18:os标准库模块使用(一)
- python学习笔记(十)标准库pprint
- python学习笔记(十一)标准库sys
- python学习笔记(十二)标准库os
- python学习笔记(十三)标准库heapq
- python学习笔记(十四)标准库urllib
- python学习笔记(十五)标准库StringIO和BytesIO
- Contiki Timers 详解
- 创业思路2:人性&公司
- Android-自动化埋点
- 在网页中嵌入Base64编码文件
- Repeated DNA Sequences 位操作
- Python标准库学习 (上)
- 1.简介和基本术语
- C++程序设计 - Week 2 类和对象初探
- this 和 getApplicationContext Context的区别
- Redis 起步
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- 一些番蔷方法
- iOS shareSDK进行第三方登录
- Binary Tree Right Side View 从左边视角输出二叉树的值