我在博客今天發現了這個有趣的項目:這是爲什麼這樣做呢?
def abc():
try:
return True
finally:
return False
print "abc() is", abc()
誰能告訴它爲什麼它做什麼?
感謝, KR
我在博客今天發現了這個有趣的項目:這是爲什麼這樣做呢?
def abc():
try:
return True
finally:
return False
print "abc() is", abc()
誰能告訴它爲什麼它做什麼?
感謝, KR
如果finally塊包含return
或break
語句從結果嘗試 塊被丟棄
它的詳細解釋在python docu
aww中的finally語句,你擊敗了我:) – 2010-08-02 17:50:43
感謝您指向文檔的指針。我無法超越'迴歸真實'甚至想到那裏。的文檔的
部分讀取:
如果最後存在時,它指定一個 「清理」處理程序。 try子句被執行, ...
這表明返回True執行。然而,這是後來澄清:
當一回,打破或繼續 語句在try套房一試... finally語句的執行 的 終於子句也 的方式執行」 out'。
這解釋了觀察到的行爲。
什麼樣的想法會首先想到這樣的代碼? ;)
儘管不完全一樣,但可以在這裏找到 的一個很好的討論:http://stackoverflow.com/questions/1611561/python-error-handling-with-try-finally – dave 2010-08-02 17:47:28
-1:did甚至沒有嘗試查看http://docs.python.org/reference/compound_stmts.html#the-try-statement – 2010-08-02 18:51:10