从Python文档
无论是否发生异常,finally子句始终在离开try语句之前执行。如果try子句中发生了异常且未由except子句处理(或在except或else子句中发生),则在执行finally子句后重新引发该异常。
当try语句的任何其他子句通过break,continue或return语句留下时 ,finally子句 也将“在输出中”执行
。一个更复杂的示例(在同一try语句中具有except和finally子句从Python 2.5开始有效):
因此,一旦将try / except块保留为 return ,这会将返回值设置为给定值-最终块将 始终
执行,并且应用于释放资源等,而在此使用另一种return会覆盖原始值。
在您的特殊情况下,
func1()return
2和
func2()return
3,因为这些是在finally块中返回的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)