with语句是个好东西,用起来比较优雅;
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等,当然都是已经加入对上下文管理协议支持的模块如文件、 threading、decimal 等。
如下面的程序(引用的网络图片):
锁释放可以用with实现:
with lock:
if count > 0:
sleep(1)
count -= 1
不管在操作用发生了什么异常,with模块都会把锁释放。
完毕。
网友评论