python finally的作用_Python finally

我们在学习python的时候都学过遇到return的时候无条件返回,以下的就不再执行。事实上是这样的吗?

我们做个试验

def func_1():

try:

return 1

print("finally没被执行")

finally:

print("finally被执行")

return 2

print(func_1())

以上函数正常情况下应该返回1,但实际上由于finally的特性,在try块return之前,会执行finally中的语句。

所以最终以上函数的结果是:

finally被执行

2

为什么不返回1呢,这是由于执行了finally块中的return,再看看我们上面说的第一句话,“我们在学习python的时候都学过遇到return的时候无条件返回”。所以try块中的return被忽略了

那么我们将上面的函数再修改一下,改成

def func_2():

try:

return 1

print("finally没被执行")

finally:

print("finally被执行")

print(func_2())

执行的结果是:

finally被执行

1

以上说明了在try块return执行之前,无论如何都会先执行finally中的块,如果finally中没有return,则返回执行try中的return。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值