glare II 2023-03-18 22:35 采纳率: 92.5%
浏览 17
已结题

关于#python#的问题:对上面折行有关try语句的代码的输出不是很理解


def func():
    try:
        return 123
    finally:
        return 321
print(func())#结果:321
 
def func():
    try:
        return 123
    finally:
        print(321)
print(func())#结果321 123

对上面折行有关try语句的代码的输出不是很理解?

  • 写回答

3条回答 默认 最新

  • 追cium 2023-03-18 22:41
    关注

    参考GPT和自己的思路:

    这段代码包含两个函数,它们都使用了 try...finally 语句。try 子句用于包含可能发生异常的代码,而 finally 子句用于包含无论是否发生异常都必须执行的代码。

    在第一个函数的 try 块中,因为没有发生异常,因此 return 语句被执行并返回了 123。但是在执行完 return 语句后,立即执行了 finally 子句中的 return 语句,从而导致函数返回了 321。因此,print(func()) 的输出结果是 321。

    在第二个函数的 try 块中,同样执行了 return 123。但是,在执行完 return 语句后,又立即执行了 finally 子句中的 print 语句打印出 321。然后函数继续执行,返回了 123,从而导致 print(func()) 的输出结果是 321 123。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月18日

悬赏问题

  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡
  • ¥20 基于MATLAB的TDOA
  • ¥15 为啥输入字体突然变了