美文网首页
Python中 try finally break return

Python中 try finally break return

作者: 小餐包 | 来源:发表于2018-03-04 21:28 被阅读298次

最近在做项目时经常会对try finally return以及raise的顺序感到困惑, 于是做了个实验:

先看第一段代码, 这里的执行顺序是:


代码1.png

从中可以看出:
finally毕竟是finally, 执行在函数已经写明return的情况下依然会执行, 甚至可以覆盖return的结果.

再看一段代码:


代码2.png

从中可以看出:
raise同学直接截胡了return同学;
Exception抛出的顺序在finally执行之后;

思考, 下面两端代码的输出是?


image.png image.png

结论:
break return raise这些语句只会使程序跳出try/except/finally对应的block;
finally的block总是在整个try/except之后执行;
return的结果可以被重写;
函数的返回值在finally之后才''返回";

相关文章

网友评论

      本文标题:Python中 try finally break return

      本文链接:https://www.haomeiwen.com/subject/arvqfftx.html