上下文管理器和 with 語句簡介
上下文管理器是在上下文(程式碼塊) 開始和結束時通知的物件。你通常使用 with
語句。它負責通知。
例如,檔案物件是上下文管理器。當上下文結束時,檔案物件將自動關閉:
open_file = open(filename)
with open_file:
file_contents = open_file.read()
# the open_file object has automatically been closed.
通常使用 as
關鍵字簡化上面的示例:
with open(filename) as open_file:
file_contents = open_file.read()
# the open_file object has automatically been closed.
結束塊執行的任何操作都會導致呼叫上下文管理器的 exit 方法。這包括異常,並且在錯誤導致你過早退出開啟的檔案或連線時非常有用。在沒有正確關閉檔案/連線的情況下退出指令碼是一個壞主意,可能會導致資料丟失或其他問題。通過使用上下文管理器,你可以確保始終採取預防措施以防止這種方式造成損壞或丟失。Python 2.5 中新增了此功能。