我正在参加「掘金·启航计划」
0 环境
- 编辑器:pycharm或者vscode
- 系统版本:windows10
- python版本:3.9.6
1 参考
2 前言
没有完成上面vscode搭建python环境,请先配好,都通了,再去简单了解vscode怎么调试python程序。
3 准备
首先这里得有python,python的版本,或者直接来个print("111")。
但是有时候会遇到切换版本等问题,如下图,点击它,选择自己需要的版本,没有可以自己手动添加,第一个Enter就可以。
4 正文
如下代码,先说结论,结合网上的解释,大意是try里的return会被暂停,继续执行finally里的,执行完了,再来执行return,这里finally有return就没有try里return的发挥的机会了,我要测试如下代码,比较奇怪,最终的结果竟然是2。
def demo():
try:
return 1
finally:
return 2
print(demo())
如下图,现在打断点,目的是为了从哪行代码开始调试,进入debug界面,点击运行。第一个运行会出现选择语言,直接选择python文件就行拉。
如下图,看到这个数字1没,说明我们已经进来了。
这里要进入这个函数,一步步的调试,都是点这个向下的箭头,如下图。
现在已经进入到了,try里的return,正常情况下,是直接结束,返回1。
没有结束反而进入finally里。在点下一步结束。
现在我finally里不加return,测试一下,一开始的结论对否,如下图所示,最终的结果是123,然后是1,验证了结论没问题的。
5 结论
函数里的try...finally,正常两种情况,都有return的情况下,一遇finally里的return直接返回,若finally里没有return,而try里有,处理完finally里的事情,在返回try里的return。