On 07/12/11 15:16, Mic wrote:

OK, that should work except you haven't set the command value to the
function that creates the seat booking window. You probabvly also want
to set the filename here too

Hmm, yes but I don't want to write two lines of code for each chair I
create, I want them in
a for loop, if that is convienient?

Yes, remember the technique of defining the data in a file or data structure? Just make the function to launch the chairs take a parameter of the filename. Then pass the filename in using a lambda in the widget definition part of the loop, like this pseudocode:

for n in number_of_destinations:
     filename = make_filename()
     b = Button(parent, label, color,
                command=lambda f=filename : ChairWindow(f) )

I see you are still defining your classes inside your functions. It
really is more normal (and useful) to define them all at the top level.
It also makes your functions easier to read!

Really? I actually thinks it is easier to read the code using inner
classes, but thats just me probably!


Its harder to read because you are splitting your code


def FunctionNameHere(args here):
    some code here
    some more
    class Fooo
       lots of class specific stiuff
        more
        more
        etc/...

    back to that method again,
    now where were we?????

The class code just acts to separate the function definition and early code fom the main body of code that defines it. And if the class has lots of functions its even more confuising and difficult to be sure where the outer function resumes.

Plus of course that the inner class is completely inaccessible
outside the function. But one of the greatest benefits of classes is that they allow easy reuse - but only if they are visible!

class Destination1_Chairs(Frame):

This is the thing you want to call from your destination buttons. So
create a method in the top level window that creates one of these objects.

So as per my pseudo code above you probvably need to add a filename parameter to your init method.


--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to