with as 語句的作用主要如下:
1、解決異常退出時資源釋放的問題;
2、解決使用者忘記呼叫close方法而產生的資源洩漏問題;
也就是說,with as方法最適合容易偷懶或者馬虎的程式設計師了,從c/c++過來的程式設計師沒少體驗過資源洩漏以及記憶體問題,而with as語句就可以方便地幫助你從苦海中解脫。
有一些任務,可能事先需要設定,事後做清理工作。對於這種場景,python的with語句提供了一種非常方便的處理方式。乙個很好的例子是檔案處理,你需要獲取乙個檔案控制代碼,從檔案中讀取資料,然後關閉檔案控制代碼。
如果不用with語句,**如下:
file = open("/tmp/foo.txt")
data = file.read()
file.close()
這裡有兩個問題。一是可能忘記關閉檔案控制代碼;二是檔案讀取資料發生異常,沒有進行任何處理。下面是處理異常的加強版本:
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()
python 中 with as的用法
with從python 2.5就有,需要from future import with statement。自python 2.6開始,成為預設關鍵字。在what s new in python2.6 3.0中,明確提到 the with statement is a control flow st...
Python中with as的用法
這個語法是用來代替傳統的try.finally語法的。with expression as variable with block 基本思想是with所求值的物件必須有乙個 enter 方法,乙個 exit 方法。緊跟with後面的語句被求值後,返回物件的 enter 方法被呼叫,這個方法的返回值將...
Python中的with as 語法
使用語言的好特性,而不是那些糟糕的特性 不知道誰說的 好久不學習python的語法了,上次去面試,和面試官聊到了python中的with as statement 也稱context manager 挺感興趣的,這兩天學習了一番,收穫頗豐在此分享。先說明乙個常見問題,檔案開啟 1 2 34 5 6 ...