Scott a écrit :
Let's say I have an object:
s/object/class/
class foo():
def create_another()
return foo()
class Foo(object):
def create_another(self):
return Foo()
def blah():
def blah(self):
x = self.create_another()
... do something with X
Now I create a inherited class of this object:
class bar(foo):
class Bar(Foo):
...
If I call bar.create_another(), it will
Actually, it will raise a TypeError...
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().
def create_another(self)
return type(self)()
And while you're at it, since - at least in this concrete case - you
need access to the class but not to the instance, you could make it a
classmethod:
class Foo(object):
@classmethod
def create_another(cls):
return cls()
HTH
--
http://mail.python.org/mailman/listinfo/python-list