Hi all. It's easier if I show an example first. Say I have
class A(object): def speak(self): print 'A!' class B(object): def speak(self): print 'B!' I also have a factory function like this. def foo(kind,*args,**kwds): if kind=='a': return A(*args,**kwds) else: return B(*args,**kwds) I need foo to be a class, so that I could inherit from it and still use it as a factory, so that I can do: Foo('a').speak() Foo('b'.speak() class Final(Foo): def __init__(self,kind,*args,**kwds): super(Foo,self).__init__(kind,*args,*kwds) Can I do it? How ? If it is possible, I'm pretty sure it involves using __new__ on Foo, but I can't figure out how to make it works. Any help is appreciated. Thank you, Riccardo -- Riccardo Galli Sideralis Programs http://www.sideralis.net -- http://mail.python.org/mailman/listinfo/python-list