有人可以向我解释为什么它会像这样吗? Python 3.6.3
In [1]: def test():
...: try:
...: return 1
...: finally:
...: return 2
...:
In [2]: test()
Out[2]: 2
编辑:
这并不是完全重复的,因为链接的问题在其try :
中引发了异常,而我的示例使用了return
,我希望它能起作用。该函数看起来应该返回1但返回2-因此基本上return 1
被忽略。 finally
很好地解决了所有出现的异常情况,但是否也应该得到回报?
答案 0 :(得分:4)
因为finally是一个清理动作,如果尝试添加,总是会被执行,否则else;)
您可以在此处阅读有关错误处理的Python 3文档页面:https://docs.python.org/3/tutorial/errors.html
部分:8.6。定义清理措施