Kim Branson wrote: > Hi i'm interested in implementing a factoryclass in python > > What i'd like to do is have my factoryClass produce an instance of a > class with some methods defined in arguments to the factory class. > > The classes that are produced have many common methods, but a single > unique method. This method actually is a series of calls to a c++ api. > Depending on what we are doing with the produced class, i'd like the > unique method to call api function A, or api function B etc. > Alternatively the unique method might call A and the B and return a > dict of the results. > > I'm doing this because i'd like all my produced class instances to > simply have a calculateResults method which will then go and do the > right thing. I don't want to set some values in the init, like A== > True and have a if A: call methodA etc statement.
Do you need to be passing in the unique method, or can you just make a base class with the common methods and subclasses that define their unique methods? For example, class Base(object): def a(self): pass def b(self): pass def calculateResults(self): raise NotImplementedError class A(Base): def calculateResults(self): return self.a() * self.b() class B(Base): def calculateResults(self): return dict(a=self.a(), b=self.b()) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor