On Feb 5, 3:08 pm, Jussi Salmela <[EMAIL PROTECTED]> wrote:
> metaperl kirjoitti:
>
> > For this program:
>
> > def reverse(data):
> > for index in range(len(data)-1, -1, -1):
> > yield data[index]
>
> > r = reverse("golf")
>
> > for char in r:
> > print char
>
> > I'm wondering if the line:
>
> > r = reverse("golf")
>
> > "demands" the contents of the function reverse() all at once and if I
> > must write
>
> > for char in reverse("golf"):
> > print char
>
> > if I want the results streamed instead of generated complely.
>
> > ** CONTEXT **
>
> > The simple example above is not what I am really doing. My real
> > program parses very large
> > data files using pyparsing. Pyparsing can generate incremental/yielded
> > results with no problem:
>
> >http://pyparsing.wikispaces.com/message/view/home/248539#248852
>
> > but because I believe in injection of control (pushing data around as
> > opposed to having
> > the target pull it), I get the parse and then inject it into the
> > generator:
>
> > parse = parsing.parse(fp.read())
> > txt = textgen.generate(self.storage.output, patent_key,
> > parse, f.basename(), debug=False)
>
> I don't know, I'm guessing:
>
> ... r = reverse("golf")
> ... type(r)
> <type 'generator'>
very slick! thanks!
> ... print r.next()
> f
>
> So r is not the string 'flog', it is the generator producing it
>
> HTH,
It does!
> Jussi
--
http://mail.python.org/mailman/listinfo/python-list