Generator not generating
Jeff Lowery
J.Lowery at F5.com
Fri Jul 23 12:20:15 EDT 2004
Wow, that make sense but somehow I've managed to (ab)use generators
several times like this before and (by luck) avoided the problem. For
example, the previous one I wrote did file.readline(), so the generator
worked because the file pointer was incremented. No such thing as a
directory pointer, I guess =^P
Thanks. Now if I can only break my bad habits...
-----Original Message-----
From: python-list-bounces+j.lowery=f5.com at python.org
[mailto:python-list-bounces+j.lowery=f5.com at python.org] On Behalf Of
Christopher T King
Sent: Thursday, July 22, 2004 5:52 PM
To: python-list at python.org
Subject: Re: Generator not generating
On Thu, 22 Jul 2004, Jeff Lowery wrote:
> def plot_dist(self):
> file = None;
>
> file = nextFile().next() # call to generator here
>
> ****
>
> I trace through this in the debugger and the call to nextFile().next()
> always starts at the beginning of the function (it always returns the
> first file in C:/somedir).
That's because your code restarts the generator each time ;)
When a generator function is called, it returns a new generator object
that starts from the beginning of the function that can then be iterated
over. To get the effect you want, you should call the generator only
once, and then store its value away for future use:
def __init__(self, master):
self.files = nextFile()
def plot_dist(self):
file = self.files.next() # call to generator here
Hope this helps.
--
http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list