On Fri, 12 Nov 2010 09:47:26 +0000, John O'Hagan wrote: > I have a generator function which takes as arguments another generator > and a dictionary of other generators like this: > > def modgen(gen, gendict): > for item in gen(): > for k, v in gendict: > do_something_called_k(item, v.next()) > yield item [snip] > If anyone's still reading :) , how can I send new values to arbitrary > sub- generators?
I have a headache after reading your problem :( I think it's a good time to point you at the Zen, particularly these five maxims: Beautiful is better than ugly. Simple is better than complex. Complex is better than complicated. Flat is better than nested. If the implementation is hard to explain, it's a bad idea. I'm afraid that your nested generators inside another generator idea fails all of those... it's not elegant (beautiful), it's complicated, it's nested, and the implementation is hard to explain. You could probably replace generators with full-blown iterators, but I wonder what you're trying to accomplish that is so complicated that it needs such complexity to solve it. What are you actually trying to accomplish? Can you give a simple example of what practical task you hope to perform? I suspect there's probably a more elegant way to solve the problem. -- Steven -- http://mail.python.org/mailman/listinfo/python-list