From: Neil Schemenauer Date: Tue, 26 Mar 2002 20:28:40 +0000 (+0000) Subject: Implement iterator protocol. X-Git-Tag: v2.3c1~6315 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=908632a6a67864aa67fc01b02973d6eb3af1ac6a;p=thirdparty%2FPython%2Fcpython.git Implement iterator protocol. --- diff --git a/Lib/fileinput.py b/Lib/fileinput.py index c18995b6b33b..870322c5996d 100644 --- a/Lib/fileinput.py +++ b/Lib/fileinput.py @@ -166,7 +166,10 @@ class FileInput: self.nextfile() self._files = () - def __getitem__(self, i): + def __iter__(self): + return self + + def next(self): try: line = self._buffer[self._bufindex] except IndexError: @@ -176,12 +179,18 @@ class FileInput: self._lineno += 1 self._filelineno += 1 return line - if i != self._lineno: - raise RuntimeError, "accessing lines out of order" line = self.readline() if not line: - raise IndexError, "end of input reached" + raise StopIteration return line + + def __getitem__(self, i): + if i != self._lineno: + raise RuntimeError, "accessing lines out of order" + try: + return self.next() + except StopIteration: + raise IndexError, "end of input reached" def nextfile(self): savestdout = self._savestdout