Differences between revisions 1 and 2
Revision 1 as of 2023-01-07 04:02:37
Size: 1078
Comment:
Revision 2 as of 2023-03-01 15:24:37
Size: 1204
Comment:
Deletions are marked like this. Additions are marked like this.
Line 50: Line 50:
----



== See also ==

[[https://docs.python.org/3/library/contextlib.html|Python contextlib module documentation]]

Python ContextLib

contextlib is a module for working with context managers.


@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


CategoryRicottone

Python/ContextLib (last edited 2023-06-15 20:50:29 by DominicRicottone)