[Python-Dev] PEP 3142: Add a "while" clause to generator expressions
Alexey G. Shpagin
python-3000 at udmvt.ru
Tue Jan 20 16:38:40 CET 2009
On Tue, Jan 20, 2009 at 09:24:32AM -0500, Gerald Britton wrote:
> hmmm...doesn't:
>
> if n*n < 50 or raise StopIteration()
>
> really mean, "Return an integer in the range 0-99 if n-squared is less
> than fifty or the statement 'raise StopIteration()' returns True" ?
>
> I'm not sure that that will work.
Well, your variant will trigger syntax error (and will not work surely).
To make it work we need a function, that raises StopIteration.
exactly as I have suggested.
>
> On Tue, Jan 20, 2009 at 9:18 AM, <python-3000 at udmvt.ru> wrote:
> > On Mon, Jan 19, 2009 at 10:10:00AM -0500, Gerald Britton wrote:
> >> Please find below PEP 3142: Add a "while" clause to generator
> >> expressions. I'm looking for feedback and discussion.
> >>
> > ...
> >> g = (n for n in range(100) while n*n < 50)
> >
> > May I suggest you this variant?
> >
> > def raiseStopIteration():
> > raise StopIteration
> >
> > g = (n for n in range(100) if n*n < 50 or raiseStopIteration())
--
Alexey G. Shpagin
More information about the Python-Dev
mailing list