python 9:清理操作什么时候执行?

我们知道,清理操作是在执行try和except块之后执行。无论前面执行的是哪一块,都要去执行finally块的语句,有一个重点:finally块的语句在最后执行。

但是,如果前面两个块中,有return语句会怎么样?那样是不是就不能执行finally块中的语句?

看下面的程序。

def invert(x):

    try:

        return 1 / x

    except ZeroDivisionError:

        return 'error1'

    finally:

        print('invert(%s) done' % x)

例1:

>>> invert(21)

invert(21) done

0.047619047619047616

例2:

>>> invert(0)

invert(0) done

'error1'

从执行的结果来看,是先执行了finally块的语句,再去执行return语句。

也就是说,return语句,还是要在finallyf块之后执行。当然try和except块的其它语句,要在finally块之前执行。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容