Let's say I have an object: class foo(): def create_another() return foo()
def blah(): x = self.create_another() ... do something with X Now I create a inherited class of this object: class bar(foo): ... If I call bar.create_another(), it will return a foo() instead of a bar(). This isn't what I want. I would like bar.create_another() to create an instance for bar(). Obviously I can do this by overriding create_another, i.e. class bar(foo): def create_another() return bar() However, is there a way for me to modify foo() so that it automatically creates objects of the derived class, so that I don't have to continue to redefine create_another() ? For example, I tried the following: def create_another() return self.type()() but it did not work. Thanks, Scott -- http://mail.python.org/mailman/listinfo/python-list