python 中的with as 和try finally

参考python 对异常的处理(try...finally...和with 方法)

try ...finally...结构

我们在执行一长串关联命令时,会有一个问题,如果当中一个命令失败了,整个命令串事实上就没有必要执行了。在异常发生时,我们也需要执行一些收场工作。比如close()方法关闭文件。

在try下全部操作如果某项失败就中止继续执行,并执行finally。如果try全部正确执行,最后也执行finally.


with as 语句

用with访问资源(比如某个文件),可以确保不管使用过程中是否发生异常都会执行必要的清理操作,释放资源,比如文件使用后自动关闭。

with 的实现离不开两个方法
__enter__():在使用with语句时调用,在代码块开始前调用,返回值与as后的参数绑定
__exit__():会话管理器在代码块执行完成好后调用,在with语句完成时,对象销毁之前调用
说简单点就是 with 语句在使用时会调用 对象的__enter__()和 __exit__()方法。

资源泄露(内存泄漏):内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。



猜你喜欢

转载自blog.csdn.net/zs15321583801/article/details/80979863