[Tutor] Changing a class into a subclass
Kent Johnson
kent37 at tds.net
Thu Mar 24 19:55:14 CET 2005
Max Noel wrote:
>
> On Mar 24, 2005, at 18:07, Ismael Garrido wrote:
>
>> Hello.
>>
>> I have a program that saves/loads to/from XML. I have a main class
>> Building, and a subclass House(Building). When I save the code I
>> instruct each object to save itself to XML (using ElementTree), so
>> House adds itself to the XML tree.
>> My problem is when I load the XML. Before having subclasses what I did
>> was to send the XML object (again in ElementTree) to the object and
>> let itself load. Now, with subclasses, if I send the House XML to
>> Building I get a Building instance, when I need a House instance.
>
>
> You can't make an object transform into an object of a different
> class.
Amazingly enough, you actually can do this just by rebinding self.__class__! This thread has an example:
http://groups-beta.google.com/group/comp.lang.python/browse_thread/thread/15afbbcd502b5450/fa111e6ea9ee4cc4
You need to identify what class the object will be an instance of
> before loading it. Which, if you're using XML tags like <Building
> type="House"> or <House>, shouldn't be very difficult to do.
This is a better approach than changing __class__ after the fact.
Kent
More information about the Tutor
mailing list