On Wed, 16 Aug 2006 12:53:12 -0700, KraftDiner wrote: >> > Well how does one select which class baseClass really is when you >> > contruct the object? >> > What am I missing? >> > >> > a = typeA() >> > b = typeB() >> > c = baseClass(a) >> >> a = typeA() >> b = typeB() >> >> You're done. Stop there. >> > I can see that this might work... > c = [a, b] > for c in [a,b]: > c.getName() > > but when does baseClass ever get used? > Why did i even have to define it?
So that you don't duplicate code. That's it. Here is a basic example. I have a class Foo with a method foo() that returns "foo", and a second class Foos which is *almost* the same except method foo() takes an argument and returns that number of foos. class BaseClass(): def foo(self): return "foo" class Foo(BaseClass): def foo(self): return self.__class__.foo() # call the parent class method class Foos(BaseClass): def foo(self, n): return self.__class__.foo() * n Obviously in this case, there is no real need for BaseClass -- Foos could inherit from Foo. But in more complex cases, you might need something like this. Hope this helps. -- Steven D'Aprano -- http://mail.python.org/mailman/listinfo/python-list