Sandra-24 wrote: > Can you create an instance of a subclass using an existing instance of > the base class? > > Such things would be impossible in some languages or very difficult in > others. I wonder if this can be done in python, without copying the > base class instance, which in my case is a very expensive object.
You can change the class of an instance by assigning to the __class__ attribute. The new class doesn't even need to be a subclass of the old: >>> class A(object): ... def __init__(self, name): ... self.name = name ... def show(self): print self.name ... >>> a = A("alpha") >>> a.show() alpha >>> class B(object): ... def show(self): print self.name.upper() ... >>> a.__class__ = B >>> a.show() ALPHA Peter -- http://mail.python.org/mailman/listinfo/python-list