diff options
author | Daniel Porteous <danielporteous1@gmail.com> | 2018-07-09 06:49:29 -0700 |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2018-07-09 23:49:29 +1000 |
commit | c287545d62edf1a1ee65727d3c57befa8c99c13a (patch) | |
tree | 697a0e57f000e254120fbcec59b30728f444985f | |
parent | 3f4d90d4d72921f16babd3f52d7df804916af224 (diff) | |
download | cpython-git-c287545d62edf1a1ee65727d3c57befa8c99c13a.tar.gz |
bpo-34067: Include a more easily understood example for nullcontext (GH-8158)
Include a more easily understood example for nullcontext
-rw-r--r-- | Doc/library/contextlib.rst | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst index 54d3a8e429..0b1f4f77dc 100644 --- a/Doc/library/contextlib.rst +++ b/Doc/library/contextlib.rst @@ -152,10 +152,22 @@ Functions and classes provided: .. function:: nullcontext(enter_result=None) - Return a context manager that returns enter_result from ``__enter__``, but + Return a context manager that returns *enter_result* from ``__enter__``, but otherwise does nothing. It is intended to be used as a stand-in for an optional context manager, for example:: + def myfunction(arg, ignore_exceptions=False): + if ignore_exceptions: + # Use suppress to ignore all exceptions. + cm = contextlib.suppress(Exception) + else: + # Do not ignore any exceptions, cm has no effect. + cm = contextlib.nullcontext() + with cm: + # Do something + + An example using *enter_result*:: + def process_file(file_or_path): if isinstance(file_or_path, str): # If string, open file |