How to overide "for line in file:"
shalabh at cafepy.com
Sun Feb 22 04:38:57 CET 2004
David Morgenthaler wrote:
> How does one overide the iterator implied by the construct "for line
> in file:"?
'for' uses __iter__().
Subclass file and redefine __iter__(self). It should return an object that
has the next() method which returns the next item, or raises StopIteration
if finished. Returning self from __iter__() is ok (then you can put the
next() in the same class).
An easier alternative is to make __iter__() a generator function (so calling
it automatically returns a 'generator' object, which has next() on it, and
also raises StopIteration when done).
More information about the Python-list