python學習-python2中try..finally和with..as

一、try...finally

高級語言通常都內置了一套try...except...finally...的錯誤處理機制,Python也不例外.


當我們認爲某些代碼可能會出錯時,就可以用try來運行這段代碼,如果執行出錯,則後續代碼不會繼續執行,而是直接跳轉至錯誤處理代碼,即except語句塊,執行完except後,如果有finally語句塊,則執行finally語句塊,至此,執行完畢。

如下所示:

try:    
    print 'try...'
    r = 10 / 0
print 'result:', rexcept ZeroDivisionError, e:    
   print 'except:', e
finally:    
  print 'finally...'
print 'END'

二、with....as

這個語法是用來代替傳統的try...finally語法的。 

with EXPRESSION [ as VARIABLE] WITH-BLOCK 

基本思想是with所求值的對象必須有一個__enter__()方法,一個__exit__()方法。

緊跟with後面的語句被求值後,返回對象的__enter__()方法被調用,這個方法的返回值將被賦值給as後面的變量。當with後面的代碼塊全部被執行完之後,將調用前面返回對象的__exit__()方法。

file = open("/tmp/foo.txt")  
try:  
    data = file.read()  
finally:  
    file.close()

而使用with as寫法如下:

with open("/tmp/foo.txt") as file:  
    data = file.read()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章