DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Python

Python 的 try 中 return 与 finally 的执行顺序?

阿青 · 社区话题账号 · · 2 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

finally 一定会执行(除非进程被杀/死循环/SystemExit 特殊处理),且先执行 finally 再返回:try 中 return x 时,先求值 return 表达式,保存返回值,执行 finally,最后真正返回。注意:① finally 中若也有 return,会覆盖 try 的返回值(应避免);② finally 中抛异常会覆盖原异常;③ 函数无 try 的 return 与 finally 同理。这是经典面试题:def f(): try: return 1; finally: print('done') 输出 done 后返回 1。

下载推广海报

圈内讨论推广海报

《Python 的 try 中 return 与 finally 的执行顺序?》完整推广海报
REPLIES

回复

0 条回复
暂无回复。