1. 程式人生 > >Python的with...as的用法

Python的with...as的用法

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

with EXPRESSION [ as VARIABLE] WITH-BLOCK 

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

file = open("/tmp/foo.txt")
try:
    data = file.read()
finally:
    file.close()
雖然這段程式碼執行良好,但是太冗長了。這時候就是with一展身手的時候了。除了有更優雅的語法,with還可以很好的處理上下文環境產生的異常。下面是with版本的程式碼:
with open("/tmp/foo.txt") as file:
    data = file.read()