From: Guido van Rossum Date: Tue, 16 Jul 2002 19:53:39 +0000 (+0000) Subject: Record the decision that StopIteration is a sink state (see recent X-Git-Tag: v2.3c1~4992 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9534e14033f26b32ed75c02a6a51bfe47c7f16a9;p=python Record the decision that StopIteration is a sink state (see recent discussion in python-dev with subject "Termination of two-arg iter()"). Implementation will follow. --- diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex index 1a07d3c984..aabc9bfa48 100644 --- a/Doc/lib/libstdtypes.tex +++ b/Doc/lib/libstdtypes.tex @@ -377,6 +377,13 @@ general and specific sequence types, dictionaries, and other more specialized forms. The specific types are not important beyond their implementation of the iterator protocol. +The intention of the protocol is that once an iterator's +\method{next()} method raises \exception{StopIteration}, it will +continue to do so on subsequent calls. Implementations that +do not obey this property are deemed broken. (This constraint +was added in Python 2.3; in Python 2.2, various iterators are +broken according to this rule.) + \subsection{Sequence Types \label{typesseq}}