A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2005-April/053143.html below:

[Python-Dev] PEP 340 - possible new name for block-statement

[Python-Dev] PEP 340 - possible new name for block-statement [Python-Dev] PEP 340 - possible new name for block-statementNick Coghlan ncoghlan at gmail.com
Fri Apr 29 17:26:13 CEST 2005
Jim Jewett wrote:
> Why not just agressively run the finalization on both forms when the
> reference count permits?

So the iterator is always finalised if the for loop has the only reference?

Two problems I can see there is that naming the target of the for loop would 
prevent it being finalised, and that this would make life interesting when the 
Jython or IronPython folks catch up to Python 2.5. . .

The finalised/not finalised aspect definitely seems to be the key behavioural 
distinction between the two forms, though. And I think there are legitimate use 
cases for a non-finalised form. Things like:

    for line in f:
        if end_of_header(line):
            break
        # process header line

    for line in f:
        # process body line

With only a finalised form of iteration available, this would need to be 
rewritten as something like:

     def header(f):
         line = next(f)
         while not end_of_header(line):
             line = next(f, yield line)

    for line in header(f):
        # process header line
    for line in f:
        # process body line


Considering the above, I actually have grave reservations about *ever* making 
finalisation the default behaviour of for loops - if I break out of a standard 
for loop before exhausting the iterator, I would expect to be able to resume the 
iterator afterwards, rather than having it flushed behind my back.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4