Doc that file.next() has undefined behaviour when called on a file opened with

'w'.  Closes bug #1569057.

To be backported once 2.5 branch is unfrozen.
This commit is contained in:
Brett Cannon 2007-04-08 04:29:32 +00:00
parent bf61856427
commit 55a1864832
2 changed files with 12 additions and 8 deletions

View File

@ -1615,14 +1615,15 @@ A file object is its own iterator, for example \code{iter(\var{f})} returns
iterator, typically in a \keyword{for} loop (for example,
\code{for line in f: print line}), the \method{next()} method is
called repeatedly. This method returns the next input line, or raises
\exception{StopIteration} when \EOF{} is hit. In order to make a
\keyword{for} loop the most efficient way of looping over the lines of
a file (a very common operation), the \method{next()} method uses a
hidden read-ahead buffer. As a consequence of using a read-ahead
buffer, combining \method{next()} with other file methods (like
\method{readline()}) does not work right. However, using
\method{seek()} to reposition the file to an absolute position will
flush the read-ahead buffer.
\exception{StopIteration} when \EOF{} is hit when the file is open for
reading (behavior is undefined when the file is open for writing). In
order to make a \keyword{for} loop the most efficient way of looping
over the lines of a file (a very common operation), the
\method{next()} method uses a hidden read-ahead buffer. As a
consequence of using a read-ahead buffer, combining \method{next()}
with other file methods (like \method{readline()}) does not work
right. However, using \method{seek()} to reposition the file to an
absolute position will flush the read-ahead buffer.
\versionadded{2.3}
\end{methoddesc}

View File

@ -736,6 +736,9 @@ Tools
Documentation
-------------
- Bug #1569057: Document that calling file.next() when the file is open for
writing is undefined.
- Patch #1489771: the syntax rules in Python Reference Manual were
updated to reflect the current Python syntax.