【发布时间】:2011-09-16 08:40:39
【问题描述】:
我在 python 中遇到了一个奇怪的行为。我在 python 帮助或 SE 中找不到有关此的信息,所以这里是:
def divide(x, y):
print 'entering divide'
try:
return x/y
except:
print 'error'
else:
print 'no error'
finally:
print 'exit'
print divide(1, 1)
print divide(1, 0)
输出:
entering divide
exit
1
entering divide
error
exit
None
如果在try 中返回值,python 似乎不会进入else 块。但是,它将始终位于 finally 块中。我真的不明白为什么。有人可以帮我解决这个逻辑吗?
谢谢
【问题讨论】: