Original Brownster wrote: > Hi, > I'm fairly new to using OOP and very new to Python, my first program is > coming along well and I have split the code into 2 modules. > > The program finds stream urls, downloads them, re-encodes them to othe > formats, all this functionality I have created in one module with one > class called Streamrip and methods to handle this. > The second module contains all the code to handle the pygtk interface > and written as a separate class called Windowapp() > > You call the Windowapp() routine, in its' init method I have a call to > create an instance of the streamrip class: > > self.UC = Streamrip(var=....) > > from then on within the Windowapp class i refer to the methods in > streamrip like > > self.UC.Dumpstream(...) etc.
This all sounds good. You have a module, Streamrip, that implements the core functionality you need. From your description, this module doesn't know about the GUI so it could be reused by another kind of client, tested, etc. You also have a module that implements a GUI front-end to Streamrip. All good. Just make sure the Streamrip module doesn't know anything about the Windowapp module - keep the dependencies one-way. > I've got this far and now I am thinking all though it works would it be > better another way for example should I have used inheritence and > allowed the windowapp class to inherit the methods of streamrip()? No, that is not better. Windowapp is not a kind of streamrip (which is what an inheritance relationship implies), it is a client of streamrip. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor