Sending changed parameters into nested generators
John O'Hagan
research at johnohagan.com
Fri Nov 12 21:39:59 EST 2010
On Fri, 12 Nov 2010, Ian wrote:
> On Nov 12, 2:47 am, "John O'Hagan" <resea... at johnohagan.com> wrote:
> > I have tried using a deep update function on the original nested
> > dictionary, but this only works if I change the contents of a list, not
> > if I want to, say, change a node from a list to a dictionary or vice
> > versa, because in that case I'm not operating on the same object the
> > generator is using.
> >
> > If anyone's still reading :) , how can I send new values to arbitrary
> > sub- generators?
>
> I think you're focusing too heavily on generators. Just because a
> nifty language construct exists doesn't mean that it's the right thing
> to use in all situations. It sounds to me that what you really want
> are objects with .next() methods and externally visible state -- i.e.
> iterators.
Oddly enough I had just begun to replace some of the generator routines in the
real program with iterator classes, but it didn't occur to me that they could
solve the nesting problem. I guess I could access the parameters of nested
iterators like:
MyIter().param.iterator.param
and so on? I'll try it, thanks. Although if it can be done with built-in
functionality...
> Or it might be that coroutines are what you're really after, although
> I think they would be difficult to manage in the way that you are
> doing.
From the rather slight docs on these features, it seems they are tailor-made
for what I'm doing (in fact my exact solution is described there as
"hackish"!), but so far I can't see how they could solve my nesting problem.
[...]
Thanks,
John
More information about the Python-list
mailing list