Search⌘ K
AI Features

Contextlib and Its Classes

Explore the core classes of Python's contextlib module including closing, suppress, and redirect_stdout. Learn how these utilities help manage resources by automatically closing handles, suppressing exceptions like FileNotFoundError, and redirecting output streams. This lesson empowers you to write cleaner, more robust Python code with effective context management.

There are multiple classes of contextlib. Let’s talk about them one by one.

  • contextlib.closing
  • contextlib.suppress(*exceptions)
  • contextlib.redirect_stdout / redirect_stderr

contextlib.closing

The contextlib module comes with some other handy utilities. The first one is the closing class which will close the db upon the completion of code block. The Python documentation gives an example that’s similar to the following one:

Python 3.5
from contextlib import contextmanager
@contextmanager
def closing(db):
try:
yield db.conn()
finally:
db.close()

Basically what we’re doing is creating a closing function that’s wrapped in a contextmanager. This is the equivalent of what the closing class does. The difference is that instead of a decorator, we can use the closing class itself in our with statement. Let’s take a look: