python 之 上下文管理器

2021-10-03 00:06:40 字數 691 閱讀 1749

首先說一下什麼叫上下文管理器

在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...