From: Andrew M. Kuchling Date: Thu, 13 Apr 2006 12:49:39 +0000 (+0000) Subject: [Bug #1464571] Mention that generator's .gi_frame can now be None X-Git-Tag: v2.5a2~258 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3b4fb041df14f8cb64c07c691031ecdc3f290ff0;p=python [Bug #1464571] Mention that generator's .gi_frame can now be None --- diff --git a/Doc/whatsnew/whatsnew25.tex b/Doc/whatsnew/whatsnew25.tex index ad58371937..5ad4275cea 100644 --- a/Doc/whatsnew/whatsnew25.tex +++ b/Doc/whatsnew/whatsnew25.tex @@ -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