L4·OOP & Errors
🚪Context Managers (with)
Guaranteed setup and teardown.
withcontext__enter____exit__
§ 1The protocol
__enter__(self) runs at the start of with. __exit__(self, exc_type, exc, tb) runs at the end, even on exception.
§ 2contextlib.contextmanager
Turn a generator with a single yield into a context manager.
Example
1from contextlib import contextmanager23@contextmanager4def tag(name):5 print(f"<{name}>")6 yield7 print(f"</{name}>")89with tag("h1"):10 print("Hello")Try it live · Python runs in your browser
Loading playground…
Checkpoint quiz
Question 1 / 2
What guarantees a file is closed?