Let's say I have an object:
class foo():
def create_another( )
return foo()
def blah():
x = self.create_ano ther()
... do something with X
Now I create a inherited class of this object:
class bar(foo):
...
If I call bar.create_anot her(), it will return a foo() instead of a
bar(). This isn't what I want. I would like bar.create_anot her() 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
class foo():
def create_another( )
return foo()
def blah():
x = self.create_ano ther()
... do something with X
Now I create a inherited class of this object:
class bar(foo):
...
If I call bar.create_anot her(), it will return a foo() instead of a
bar(). This isn't what I want. I would like bar.create_anot her() 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
Comment