2.2 <-> 2.3 surprise

Roman Suzi rnd at onego.ru
Wed Jun 2 18:50:28 CEST 2004


On Mon, 31 May 2004, Shalabh Chaturvedi wrote:

>Roman Suzi wrote:
>
>> Hi!
>>
>> I really like python 2.3 but sometimes I write for 2.2 too.
>>
>> New cool feature of doing:
>>
>> f = open('file')
>> for line in f:
>>   do_something(line)
>>
>> works strange in 2.2: I can't just quit first loop and do:
>>
>> for line in f:
>>   do_some_more(line)
>>
>> (I as skipping message header by first loop and processing body
>> the the second).
>>
>> In 2.3 it works as intended! Of course, simple refacture made it one loop...
>>
>>
>>
>> Sincerely yours, Roman Suzi
>
>This is probably the following change as described in
>http://www.python.org/2.3/highlights.html
>
>"File objects are now their own iterators. This makes multiple
>interrupted iterations over the same file more reliable."

Hmmm... Such gradual changes IMHO are worse than just adding something
at once. The problem is I was getting no warnings that something is wrong.
In some big project this could break a lot.

>Something that *might* work in both 2.2 and 2.3 using multiple loops is
>(not tested):
>
>f = iter(open('file'))
>
>...and then use f as before.
>
>--
>Shalabh
>
>
>
>

Sincerely yours, Roman Suzi
-- 
rnd at onego.ru =\= My AI powered by GNU/Linux RedHat 7.3




More information about the Python-list mailing list