In Han Kang wrote: > So each of the sub classes plots a different type of graph. The > superclass defines methods that are the same for all the plots. I want > to be able to pick some points and be able to generate a more plots. > What I was wondering if I could define in a method in the superclass of > an object the ability to make a brand new subclass (new plot). So > basically, one plot makes another plot, but it'd be nice if i could put > all the code in the superclass.
Still not sure I understand you. How are you determining which new type of plot to create? If I'm an instance of class PlotA, and the user asks me to create create a new Plot, is it always another instance of class PlotA, or could it be an instance of another class? If the former, you can use a classmethod, e.g.: class Plot(object): @classmethod def new(cls, ...): result = cls(...) # maybe modify result some more return result If the latter, this doesn't sound like something that should be a method of an instance. It sounds more like a factory function. Why not just make it a module-global function, e.g.: def newPlot(...): # determine which kind of Plot object to create ... if ...: return PlotA(...) ... A method signature of the method you want to write would help a lot... STeVe -- http://mail.python.org/mailman/listinfo/python-list