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/2001-April/014357.html below:

[Python-Dev] Shall I start adding iterators to Python 2.2?

[Python-iterators] Re: [Python-Dev] Shall I start adding iterators to Python 2.2?Thomas Wouters thomas@xs4all.net
Fri, 20 Apr 2001 11:26:38 +0200
On Fri, Apr 20, 2001 at 11:02:09AM +0200, M.-A. Lemburg wrote:

> > - There's an operation to create an iterator from a function and a
> >   sentinel value.  This is spelled as iter(function, sentinel).  For
> >   example,
> > 
> >     for line in iter(sys.stdin.readline, ""):
> >       ...
> > 
> >   is an efficient loop over the lines of stdin.

> Hmm, I guess you have to compare each function output to the
> sentinel then, right ? This can be very expensive.

> Wouldn't an exception base class also do the trick as sentinel ? The 
> iterator would then stop when an exception is raised by the
> function which matches the sentinel exception.

The sentinel method is for use with existing functions, that return a
sentinel value (like "" or None or whatever.) Comparing to those is not
terribly expensive, asside from the burden of running a single compare in
the inner loop. Rewriting those functions to raise an exception instead
would be, well, somewhat silly -- if you're rewriting them anyway, why not
just make an iterator out of them ?

-- 
Thomas Wouters <thomas@xs4all.net>

Hi! I'm a .signature virus! copy me into your .signature file to help me spread!



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