On 14Oct2010 14:13, Tim Chase <python.l...@tim.thechases.com> wrote: | On 10/14/10 12:53, Paul Rubin wrote: | >Carl Banks<pavlovevide...@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 <c...@zip.com.au> DoD#743 http://www.cskk.ezoshosting.com/cs/ I had no problem avoiding London before it was built. - ir_jo...@csd.brispoly.ac.uk (Ian Johnson) -- http://mail.python.org/mailman/listinfo/python-list