summaryrefslogtreecommitdiff
path: root/Lib/test/test_file.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-08-06 15:55:28 +0000
committerGuido van Rossum <guido@python.org>2002-08-06 15:55:28 +0000
commit9a1307f87c20d8622ffa7aa752df357fd841adc3 (patch)
tree57e4d1442ce3fd3ebf4d8555a2cedd4d96070b1f /Lib/test/test_file.py
parent2e4968148604ce45c67f4c71fc5ead7f9a846f20 (diff)
downloadcpython-9a1307f87c20d8622ffa7aa752df357fd841adc3.tar.gz
SF patch 580331 by Oren Tirosh: make file objects their own iterator.
For a file f, iter(f) now returns f (unless f is closed), and f.next() is similar to f.readline() when EOF is not reached; however, f.next() uses a readahead buffer that messes up the file position, so mixing f.next() and f.readline() (or other methods) doesn't work right. Calling f.seek() drops the readahead buffer, but other operations don't. The real purpose of this change is to reduce the confusion between objects and their iterators. By making a file its own iterator, it's made clearer that using the iterator modifies the file object's state (in particular the current position). A nice side effect is that this speeds up "for line in f:" by not having to use the xreadlines module. The f.xreadlines() method is still supported for backwards compatibility, though it is the same as iter(f) now. (I made some cosmetic changes to Oren's code, and added a test for "file closed" to file_iternext() and file_iter().)
Diffstat (limited to 'Lib/test/test_file.py')
0 files changed, 0 insertions, 0 deletions