|
Size: 1204
Comment:
|
Size: 1292
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 58: | Line 58: |
| [[https://pymotw.com/3/contextlib/|Python Module of the Day article for contextlib]] |
Python ContextLib
contextlib is a module for working with context managers.
Contents
@ContextManager
To convert a function that yields a value into a context manager, try:
from contextlib import contextmanager
@contextmanager
def managed_resource():
resource = acquire_resource()
try:
yield resource
finally:
release_resource(resource)
with managed_resource() as resource:
...
Abstract Base Classes
The module contains two abstract base classes that can be used with isinstance or issubclass, and for type annotations
AbstractContextManager
Implements a simple __enter__() method (which returns self) and an abstract __exit__() method (which returns None).
AbstractAsyncContextManager
Implements a simple __aenter__() method (which returns self) and an abstract __aexit__() method (which returns None).
See also
Python contextlib module documentation
Python Module of the Day article for contextlib
