內文管理器
python with 語句,能讓我們更輕易的實行資源管理,例如數據、開啟文件,或是各種會lock的行為。
要保證處理完相關事情,資源有被釋放。
簡單行為中,我們會這樣去開啟文件
test_file = open('test.txt', 'w')
try:
test_file.write('line one')
finally:
test_file.close()
上述行為除了是非慣用以外,
若try-finally裡面邏輯複雜,還面臨著維護的困難。
這裡有著使用 with 的簡單用法
with open('test.txt', 'w') as test_file:
test_file.write('line one')
上述程式碼中,當 with 內的語句執行結束後,會自動關閉該資源,且變數test_file也會結束。
實現context manager
若想實現 context manager的功能,則要定義好__enter__ 與 __exit__ 兩個函式,分別管理with的進入行為和結束行為。
發表留言