Why are "broken iterators" broken?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Sun Sep 21 17:13:18 CEST 2008

According to the Python docs, once an iterator raises StopIteration, it 
should continue to raise StopIteration forever. Iterators that fail to 
behave in this fashion are deemed to be "broken":


I don't understand the reasoning behind this. As I understand it, an 
iterator is something like a stream. There's no constraint that once a 
stream is empty it must remain empty forever.

Can somebody explain why "broken iterators" are broken?


More information about the Python-list mailing list