generator object or 'send' method?

greg greg at cosc.canterbury.ac.nz
Wed Feb 11 05:41:22 EST 2009


Aaron Brady wrote:

> 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'?

No. This requirement clearly indicates that send() is
the wrong tool for the job.

I would use a class with a generator as a method, e.g.

   class Multiples:

     m = 1

     def set_multiplier(self, m):
       self.m = m

     def generate(self, limit):
       for i in xrange(limit):
         yield i * self.m

   g = Multiples()
   for x in g.generate(10):
     print x
     if x == 3:
       g.set_multiplier(42)

produces

0
1
2
3
168
210
252
294
336
378

-- 
Greg



More information about the Python-list mailing list