summaryrefslogtreecommitdiffstats
path: root/Doc/ref
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2006-05-02 19:47:52 (GMT)
committerGuido van Rossum <guido@python.org>2006-05-02 19:47:52 (GMT)
commitda5b701aeef755f2317a41e36cc950cfdc0c95cb (patch)
tree11a37e4e8714ffbccce921aa0ef1878b7dc779b2 /Doc/ref
parent8f6cbe150228f175b57b7a774d0a630febe72244 (diff)
downloadcpython-da5b701aeef755f2317a41e36cc950cfdc0c95cb.zip
cpython-da5b701aeef755f2317a41e36cc950cfdc0c95cb.tar.gz
cpython-da5b701aeef755f2317a41e36cc950cfdc0c95cb.tar.bz2
Get rid of __context__, per the latest changes to PEP 343 and python-dev
discussion. There are two places of documentation that still mention __context__: Doc/lib/libstdtypes.tex -- I wasn't quite sure how to rewrite that without spending a whole lot of time thinking about it; and whatsnew, which Andrew usually likes to change himself.
Diffstat (limited to 'Doc/ref')
-rw-r--r--Doc/ref/ref3.tex16
-rw-r--r--Doc/ref/ref7.tex13
2 files changed, 5 insertions, 24 deletions
diff --git a/Doc/ref/ref3.tex b/Doc/ref/ref3.tex
index d22448c..ba0594f 100644
--- a/Doc/ref/ref3.tex
+++ b/Doc/ref/ref3.tex
@@ -2138,22 +2138,6 @@ For more information on context managers and context objects,
see ``\ulink{Context Types}{../lib/typecontext.html}'' in the
\citetitle[../lib/lib.html]{Python Library Reference}.
-\begin{methoddesc}[context manager]{__context__}{self}
-Invoked when the object is used as the context expression of a
-\keyword{with} statement. The returned object must implement
-\method{__enter__()} and \method{__exit__()} methods.
-
-Context managers written in Python can also implement this method
-using a generator function decorated with the
-\function{contextlib.contextfactory} decorator, as this can be simpler
-than writing individual \method{__enter__()} and \method{__exit__()}
-methods on a separate object when the state to be managed is complex.
-
-\keyword{with} statement context objects also need to implement this
-method; they are required to return themselves (that is, this method
-will simply return \var{self}).
-\end{methoddesc}
-
\begin{methoddesc}[with statement context]{__enter__}{self}
Enter the runtime context related to this object. The \keyword{with}
statement will bind this method's return value to the target(s)
diff --git a/Doc/ref/ref7.tex b/Doc/ref/ref7.tex
index 4453e87..4a23133 100644
--- a/Doc/ref/ref7.tex
+++ b/Doc/ref/ref7.tex
@@ -322,21 +322,18 @@ be encapsulated for convenient reuse.
\begin{productionlist}
\production{with_stmt}
- {"with" \token{expression} ["as" target_list] ":" \token{suite}}
+ {"with" \token{expression} ["as" target] ":" \token{suite}}
\end{productionlist}
The execution of the \keyword{with} statement proceeds as follows:
\begin{enumerate}
-\item The context expression is evaluated, to obtain a context manager.
+\item The context expression is evaluated to obtain a context manager.
-\item The context manger's \method{__context__()} method is
-invoked to obtain a \keyword{with} statement context object.
+\item The context manager's \method{__enter__()} method is invoked.
-\item The context object's \method{__enter__()} method is invoked.
-
-\item If a target list was included in the \keyword{with}
+\item If a target was included in the \keyword{with}
statement, the return value from \method{__enter__()} is assigned to it.
\note{The \keyword{with} statement guarantees that if the
@@ -347,7 +344,7 @@ an error occurring within the suite would be. See step 6 below.}
\item The suite is executed.
-\item The context object's \method{__exit__()} method is invoked. If
+\item The context manager's \method{__exit__()} method is invoked. If
an exception caused the suite to be exited, its type, value, and
traceback are passed as arguments to \method{__exit__()}. Otherwise,
three \constant{None} arguments are supplied.