首先說一下什麼叫上下文管理器:
在python中任何實現了 __enter__() 和 __exit__() 方法的物件都可稱之為上下文管理器,
上下文管理器物件可以使用 with 關鍵字
我們可以模擬實現乙個類,讓該類實現 __enter__() 和 __exit__() 方法
class file():
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
def __enter__(self):
print("shangwen")
self.f = open(self.filename, self.mode)
return self.f
def __exit__(self, *args):
print("xiawen")
self.f.close()
with file('mytest.txt', 'w') as f:
print("正在寫入")
f.write('。。。。。。。。')
這樣,你就無需顯示地呼叫 close 方法了,由系統自動去呼叫,哪怕中間遇到異常 close 方法也會被呼叫。 Python之上下文管理器
以下文章總結自 head first python 讀書筆記 從python處理乙個檔案說起,在python中開啟乙個檔案時,一般的 邏輯如下 file open test.txt for line in file print line file.close 以上 主要做了3件事 1 開啟乙個檔案 ...
Python之上下文管理器物件
在學習python的過程中,經常會用到with語句,比如在進行檔案操作時,會使用下面這樣的語法 with open 1.txt r as f print f.read 這裡就會產生乙個疑問 f是不是就是open 函式的返回值呢?其實並不是,這裡涉及到上下文管理器方面的知識,先來解釋一下什麼是上下文管...
python之上下文管理器 with語句詳解
上下文管理器 一 基本語法with expr as var pass 以最常用的with為例 操作文字物件的時候,幾乎所有的人都會讓我們要用with open,這就是乙個上下文管理器的一種。比如 with open 1.txt as f print f.readllines 輸出結果 print t...