Một context manager là một đối tượng định nghĩa logic thiết lập và dọn dẹp, được dùng với câu lệnh with. Nó đảm bảo việc dọn dẹp (đóng file, giải phóng lock, rollback transaction) diễn ra tự động — ngay cả khi có lỗi xảy ra.
Vấn đề nó giải quyết
f = ()
data = f.read()
process(data)
f.close()
() f:
data = f.read()
process(data)
