"Che M" <[EMAIL PROTECTED]> wrote >>Instead of using the class create an instance(aka object) >> self.plotPanel = PlotPanel(mypoints,self.notebook1)
> This worked great, thanks! One question: you mention that in this > way it > is passing in the mypoints list and also the notebook1. What I am > unclear > is, why are you allowed to pass in the notebook? If you look at the > original class PlotPanel(): > > class PlotPanel(wx.lib.plot.PlotCanvas): > def __init__(self, points=[], *args, **kwargs): > wx.lib.plot.PlotCanvas.__init__(self, *args, **kwargs) OK, It always amazes me how the same basic topic comes up all at once in this group. Kent gave a good explanation of *args/**kwargs earlier this week, look back for it. But basically what those two magic words do is take all of the arguments passed in and bundle them up into those two collections(kw args is keyword arguments and args is the rest(*)) So then when you call PlotCanvas.__init__() you are just passing on everything that was passed into your init. You don;t know nor care how many other arguments were gibemn, you just pass them onto the superclass to deal with. But you do care about points, so you put that as the first parameter. Then when your init gets called Python peels off the first value and puts it in points, the rest get put into args/kwargs. (*)You recall that if a function has all of its parameters take default values you can call it using keywords like this: def f(a=1,b=2,c=3,d=4,e=3,f=2,g=1): pass f(b=7,g=2) f(c=4,a=0) etc Those are the keyword arguments But I can also call it with plain values provided I use the right order: f(9,8,7) # a=9,b=8,c=7,d=4,e=3,f=2,g=1 Those are the args Now I can use both techniques too: f(7,8,e=0,g=2) # a=7,b=8,c=3,d=4,e=0,f=2,g=2 Here args is 7,8 kwargs is e=0,g=2 Is that clearer? > **kwargs. But you are passing it the notebook1, so how does it know > which > "slot" of these four parameters notebook1 refers to? It doesn't, it passes notebook1 as the first value in args to the superclass init. It then gets unpacked as the first parameter(after self) of the superclass' init. HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor