我今天在博客中发现了这个有趣的项目:
def abc():
try:
return True
finally:
return False
print "abc() is", abc()
任何人都可以告诉它为什么会这样做吗?
谢谢, KR
答案 0 :(得分:10)
如果finally块包含return
或break
语句,则结果来自try
块被丢弃
答案 1 :(得分:1)
答案 2 :(得分:0)
感谢指向文档的指针。即使想到那里,我也无法超越“回归真实”。
部分文件内容如下:
如果最终存在,则指定a '清理'处理程序。 try子句是 执行时,强> ...
表示执行返回True。但是,后来澄清了这一点:
返回,休息或继续时 语句在try套件中执行 尝试...最后声明, finally子句也被执行'on 出路。'
这解释了观察到的行为。
首先,会有什么样的想法想出这样的代码? ;)