Boolean value of generators

Cameron Simpson cs at zip.com.au
Thu Oct 14 17:21:00 EDT 2010


On 14Oct2010 14:13, Tim Chase <python.list at tim.thechases.com> wrote:
| On 10/14/10 12:53, Paul Rubin wrote:
| >Carl Banks<pavlovevidence at gmail.com>  writes:
| >>In general, the only way to test if a generator is empty is to try to
| >>consume an item.  (It's possible to write an iterator that consumes an
| >>item and caches it to be returned on the next next(), and whose
| >>boolean status indicates if there's an item left. ...)
| >
| >I remember thinking that Python would be better off if all generators
| >automatically cached an item, so you could test for emptiness, look
| >ahead at the next item without consuming it, etc.  This might have been
| >a good change to make in Python 3.0 (it would have broken compatibility
| >with 2.x) but it's too late now.
| 
| Generators can do dangerous things...I'm not sure I'd *want* to have
| Python implicitly cache generators without an explicit wrapper to
| request it: [... damaging counter example ...]

+1 to this. Speaking for myself, I would _not_ want a generator to
commence execution unless I overtly iterate over it.

I suppose we can cue the "hasattr() runs getattr(), ouch!" discussion
here:-)

Cheers,
-- 
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/

I had no problem avoiding London before it was built.
        - ir_johns at csd.brispoly.ac.uk (Ian Johnson)



More information about the Python-list mailing list