]> granicus.if.org Git - python/commitdiff
[Bug #1464571] Mention that generator's .gi_frame can now be None
authorAndrew M. Kuchling <amk@amk.ca>
Thu, 13 Apr 2006 12:49:39 +0000 (12:49 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Thu, 13 Apr 2006 12:49:39 +0000 (12:49 +0000)
Doc/whatsnew/whatsnew25.tex

index ad58371937844c8812eced92a8a2c4ae48492bd6..5ad4275cea081b3ac1a4475de63704cdbf1b953d 100644 (file)
@@ -412,7 +412,7 @@ implementation by Thomas Lee.}
 
 
 %======================================================================
-\section{PEP 342: New Generator Features}
+\section{PEP 342: New Generator Features\label{section-generators}}
 
 Python 2.5 adds a simple way to pass values \emph{into} a generator.
 As introduced in Python 2.3, generators only produce output; once a
@@ -541,7 +541,7 @@ figure out patterns for using coroutines effectively in Python.
 The addition of the \method{close()} method has one side effect that
 isn't obvious.  \method{close()} is called when a generator is
 garbage-collected, so this means the generator's code gets one last
-chance to run before the generator is destroyed, and this last chance
+chance to run before the generator is destroyed.  This last chance
 means that \code{try...finally} statements in generators can now be
 guaranteed to work; the \keyword{finally} clause will now always get a
 chance to run.  The syntactic restriction that you couldn't mix
@@ -552,6 +552,11 @@ necessary in order to implement the  \keyword{with} statement
 described by PEP 343.  We'll look at this new statement in the following 
 section.
 
+Another even more esoteric effect of this change: previously, the
+\member{gi_frame} attribute of a generator was always a frame object.
+It's now possible for \member{gi_frame} to be \code{None}
+once the generator has been exhausted.
+
 \begin{seealso}
 
 \seepep{342}{Coroutines via Enhanced Generators}{PEP written by 
@@ -1641,6 +1646,11 @@ this triggered a warning, not a syntax error.
 
 \item The \module{pickle} module no longer uses the deprecated \var{bin} parameter.
 
+\item Previously, the \member{gi_frame} attribute of a generator
+was always a frame object.  Because of the \pep{342} changes
+described in section~\ref{section-generators}, it's now possible
+for \member{gi_frame} to be \code{None}.
+
 \item C API: Many functions now use \ctype{Py_ssize_t} 
 instead of \ctype{int} to allow processing more data 
 on 64-bit machines.  Extension code may need to make