mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Fix documentation nits for decimal context managers.
This commit is contained in:
parent
e7877d930c
commit
68b6d3b85a
2 changed files with 11 additions and 16 deletions
|
@ -448,27 +448,23 @@ active context.
|
||||||
|
|
||||||
\begin{funcdesc}{localcontext}{\optional{c}}
|
\begin{funcdesc}{localcontext}{\optional{c}}
|
||||||
Return a context manager that will set the current context for
|
Return a context manager that will set the current context for
|
||||||
the active thread to a copy of \var{c} on entry to the with statement
|
the active thread to a copy of \var{c} on entry to the with-statement
|
||||||
and restore the previous context when exiting the with statement. If
|
and restore the previous context when exiting the with-statement. If
|
||||||
no context is specified, a copy of the current context is used.
|
no context is specified, a copy of the current context is used.
|
||||||
|
\versionadded{2.5}
|
||||||
|
|
||||||
For example the following code increases the current decimal precision
|
For example, the following code increases the current decimal precision
|
||||||
by 42 places, performs a calculation, and then automatically restores
|
by 42 places, performs a calculation, and then automatically restores
|
||||||
the previous context:
|
the previous context:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
from __future__ import with_statement
|
from __future__ import with_statement
|
||||||
import decimal
|
import decimal
|
||||||
|
|
||||||
with decimal.localcontext() as ctx:
|
with localcontext() as ctx:
|
||||||
ctx.prec = 42 # Perform a high precision calculation
|
ctx.prec = 42 # Perform a high precision calculation
|
||||||
s = calculate_something()
|
s = calculate_something()
|
||||||
s = +s # Round the final result back to the default precision
|
s = +s # Round the final result back to the default precision
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
The context that is held by the context manager and made active in the
|
|
||||||
body of the \keyword{with} statement is a \emph{copy} of the context
|
|
||||||
you provide to this function, so modifying its attributes doesn't
|
|
||||||
affect anything except that temporary copy.
|
|
||||||
\end{funcdesc}
|
\end{funcdesc}
|
||||||
|
|
||||||
New contexts can also be created using the \class{Context} constructor
|
New contexts can also be created using the \class{Context} constructor
|
||||||
|
|
|
@ -685,20 +685,19 @@ the block is complete.
|
||||||
|
|
||||||
The \module{decimal} module's contexts, which encapsulate the desired
|
The \module{decimal} module's contexts, which encapsulate the desired
|
||||||
precision and rounding characteristics for computations, provide a
|
precision and rounding characteristics for computations, provide a
|
||||||
\method{context_manager()} method for getting a context manager:
|
\function{localcontext()} function for getting a context manager:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
import decimal
|
from decimal import Decimal, Context, localcontext
|
||||||
|
|
||||||
# Displays with default precision of 28 digits
|
# Displays with default precision of 28 digits
|
||||||
v1 = decimal.Decimal('578')
|
v = Decimal('578')
|
||||||
print v1.sqrt()
|
print v.sqrt()
|
||||||
|
|
||||||
ctx = decimal.Context(prec=16)
|
with localcontext(Context(prec=16)):
|
||||||
with ctx.context_manager():
|
|
||||||
# All code in this block uses a precision of 16 digits.
|
# All code in this block uses a precision of 16 digits.
|
||||||
# The original context is restored on exiting the block.
|
# The original context is restored on exiting the block.
|
||||||
print v1.sqrt()
|
print v.sqrt()
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
\subsection{Writing Context Managers\label{context-managers}}
|
\subsection{Writing Context Managers\label{context-managers}}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue