[英]Why does this do what it does?
我今天在博客中发现了这个有趣的项目:
def abc():
try:
return True
finally:
return False
print "abc() is", abc()
任何人都可以告诉它为什么会这样做吗?
谢谢,KR
如果finally块包含return
或break
语句,则try块的结果将被丢弃
它在python文档中有详细解释
感谢指向文档的指针。 即使想到那里,我也无法超越“回归真实”。
部分文件内容如下:
如果finally存在,则指定'cleanup'处理程序。 try子句被执行, ......
这表明返回True是执行的。 但是,后来澄清了这一点:
当在try ... finally语句的try套件中执行return,break或continue语句时,finally子句也会在“出路”中执行。
这解释了观察到的行为。
什么样的头脑会首先考虑这样的代码? ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.