全部学习汇总: https://github.com/GreyZhang/python_basic
这几年我也一直在用python,但是只是写一点点简单的批处理脚本而已。有很多语言编码的细节还是不熟悉。今天晚上看了Google的python编码规范,里面还是有一些不熟悉的地方的。
在里面有上面这一段,其中提到了finally的用法。而之前,我基本上只是try/except基本上就OK了。今天,从最基础的使用上初步了解一点finally的使用。按照上面的说法,这个通常是用了做一些清理的工作,那么我也尝试写一个这样的测试例子。
运行效果:
这个例子,其实只是看得出软件运行了而已。为了对比,我写一个对比的例子。
运行效果:
看的出,出错的时候,有一个文件其实是没有正常关闭的。如何实现两种情况都可以关闭呢?我们自然是可以写重复的代码,但是还有一个其他的方式,那就是finally的使用。具体如下:
运行效果:
看得出,不管是是否出了问题,都成功的关闭了文件。
继续修改,看一个另一个方面的差异:
增加了except的分支,这种情况的运行效果:
这个其实就能够看得出,不使用和使用的差异了啦。这种情况下,即使是使用了except的分支,其实也有不能够正常关闭文件的风险。然而,如果使用了finally分支之后,就可以全都处理掉。当然,这个并不是绝对的,还是有一些其他的转弯的手段做一些更灵活的处理,但是从最简单的使用方式上有一定的说明力。