[Python-Dev] listcomps vs. for loops

Michael Hudson mwh at python.net
Tue Oct 21 10:45:00 EDT 2003


Jp Calderone <exarkun at intarweb.us> writes:

> On Tue, Oct 21, 2003 at 12:41:00PM +0100, Michael Hudson wrote:
>> Guido van Rossum <guido at python.org> writes:
>> 
>> > I don't recall what I said then.  Did I say it was a feature that
>> >
>> >   L = [x for x in R]
>> >   print x
>> >
>> > would print the last item of R?
>> 
>> A problem with such code irrespective of anything else is that it
>> fails when R is empty.
>> 
>
>   Not when x is properly initialized.

Obviously.

>  Anyway, this is no different from the
> problem of:
>
>     for x in R:
>         ...
>     print x

Well, yes.  I still think it's dubious code.

>   In any case, are there plans to also have the compiler emit warnings about
> potential reliance on this feature?

I would hope that we wouldn't make changes without emitting such a
warning.  I'm not sure how hard it would be to implement, tho'.

(It would be /nice/ to implement a warning whenever there's a
possibility of the UnboundLocalError exception, but that *definitely*
requires control flow analysis and that is *definitely* a heap of
work, unless the ast-branch gets some attention).

Cheers,
mwh

-- 
  We did requirements and task analysis, iterative design, and user
  testing. You'd almost think programming languages were an interface
  between people and computers.                    -- Steven Pemberton
          (one of the designers of Python's direct ancestor ABC)



More information about the Python-Dev mailing list