Aaron Brady wrote:
Hello,

I am writing a generator to return a sequence of numbers with some
variation.  The parameters of the variation can be changed by the
caller, even after the generator is started.  My question is, is it
better to wrap the generator in an object, so that the parameters can
be changed just by an attribute access?

Rather than wrap a generator, I would just write an iterator class.
A generator function is basically an abbreviated class statement. (The abbreviation is the removal of boilerplate code.)

> Or keep the generator clear, and modify parameters with a 'send' call?

If I were modifying a single parameter and wanted the next value returned immediately upon sending, I would do this.

P.S.  It would receive the 'send' from a different point in control
flow than its usual 'next'.  Should it repeat a value if it receives a
'send'?  Or should I wrap it in a secondary 'trap_send_and_repeat'
generator?

But for this I would go with the class.  Pretty foolproof.

tjr

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to