Python 的 try 中 return 与 finally 的执行顺序?
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。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。