Guido van Rossum wrote:
On Sun, Apr 4, 2010 at 9:58 AM, cool-RR
wrote: I'm still a bit confused by generators and generator expressions, but what about making a `generator.__add__` method, that'll act like `itertools.chain`?
This gets proposed several times a year. We always shoot it down for the same reasons: iterators are an abstract API and we don't want to burden every iterator implementation with having to implement various operations.
I actually messed around with writing a FlexIter class once that wrapped an arbitrary iterator and mapped __add__ to itertools.chain, __mul__ to itertools.repeat and a few other things. It actually turned out to get really ugly, really fast, so I abandoned the idea. Making arbitrary iterators as easy to manipulate as lists is an appealing idea, but a lot harder than it sounds given the deliberately limited definition of the iterator protocol. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia ---------------------------------------------------------------