我尝试谷歌搜索,但找不到类似的问题。我确信这是愚蠢的,但我似乎无法理解。
我有以下代码:
def f(a):
try:
4 / a
except:
f(2)
else:
print('else')
finally:
print("finally")
当我以 0 作为参数调用函数时:f(0)
它返回:
else
finally
finally
所以根据我的理解,这是应该发生的事情:
0 被提供给函数;
try语句不能执行;
除了语句获取触发器,它再次使用合法参数 2 调用该函数。
try 语句现在可以了;
else 语句打印 else
最后声明打印 finally
为什么finally
会打印两次?
尚方宝剑之说
相关分类