Generator not generating

Jeff Lowery J.Lowery at F5.com
Thu Jul 22 20:39:18 EDT 2004


Hi,

Although I'm no Python expert, I have written generators in the past
that have worked like a charm.  Don't know why this one doesn't:


****
class App:
    """
    A simple Tk application that plots random lines
    """

    def __init__(self, master):
        # create the main frame
        frame = Frame(master)
        frame.pack()

        # create a canvas within the frame
        self.canvas = Canvas(frame, width=400, height=400)
        self.canvas.pack(side=TOP)

        # create a button below the canvas and within the frame
        # method add_line() is invoked if the button is clicked
        button = Button(frame, text="Plot",
                               command=self.plot_dist)
        button.pack(side=BOTTOM)

    def plot_dist(self):
        file = None;
        
        file = nextFile().next()  # call to generator here
        ...

def nextFile():
    dirPath = 'C:/somedir'
    file = None;
        
    for filename in os.listdir(dirPath):
        file = open(dirPath + '/' + filename, 'r')
        yield file


#
# MAIN
#    
# Initialize the graphical toolkit
root = Tk()

# Create the sample graphical application
app  = App(root)

# Use in stand-alone programs, not in IDLE
root.mainloop()

****

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).

So what stoopid mistake am I overlooking here? I am running v2.3, BTW.




More information about the Python-list mailing list