上下文管理器和 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 中新增了此功能。