最终会在try子句的break,continue,return语句之前执行块

问题描述 投票:0回答:1

最终在python中的try子句的break或continue或return语句之前阻塞执行,然后为什么此代码的输出不同

def bool_return():
    try:
        return print("foo")
    except:
        pass
    finally:
        return "ola"

print(bool_return())

输出为:

foo ola

为什么?

python try-catch break finally
1个回答
1
投票

返回某件事是函数可以做的最后一件事。返回某些内容后,Python将继续执行之前或结束脚本之前的操作。

如果Python立即返回,则函数结束。无论发生什么情况,finally块都被认为是运行的,因此即使原始回报丢失,它也必须首先运行。


0
投票

finally块是我们编写用于关闭与其他服务器的连接的代码的东西。如果万一我们从语句中返回,我们将打开连接,以便在移出函数之前执行该连接。我们可以检查是否在final块中写了一个return并尝试执行其中的try块]

© www.soinside.com 2019 - 2024. All rights reserved.