With介紹:
with是從Python2.5引入的一個新的語法,它是一種上下文管理協(xié)議,目的在于從流程圖中把try,except和finally關鍵字和資源分配釋放相關代碼統(tǒng)統(tǒng)去掉,簡化try….except….finlally的處理流程。with通過__enter__方法初始化,然后在__exit__中做善后以及處理異常。所以使用with處理的對象必須有__enter__()和__exit__()這兩個方法。其中__enter__()方法在語句體(with語句包裹起來的代碼塊)執(zhí)行之前進入運行,__exit__()方法在語句體執(zhí)行完畢退出后運行。
with語句適用于對資源進行訪問的場合,確保不管使用過程中是否發(fā)生異常都會執(zhí)行必要的“清理”操作,釋放資源,比如文件使用后自動關閉、線程中鎖的自動獲取和釋放等。
With語句的基本語法格式如下
withexpression[astarget]:
with_body
參數(shù)說明:
expression:是一個需要執(zhí)行的表達式;
target:是一個變量或者元組,存儲的是expression表達式執(zhí)行返回的結果,可選參數(shù)。
#coding=utf-8
withopen("d:\\a.txt",'r')asfp:
printfp.read()
with語句的工作原理:
緊跟with后面的語句會被求值,返回對象的__enter__()方法被調用,這個方法的返回值將被賦值給as關鍵字后面的變量,當with后面的代碼塊全部被執(zhí)行完之后,將調用前面返回對象的__exit__()方法。
以上內容為大家介紹了python培訓之with語句為什么會報錯,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。