Mark Shewfelt wrote: > Hello, > > I have implemented a series of classes representing a Building, its > respective Equipment, and then various Components of that equipment > like so (as you'll be able to tell, I'm a newbie): > > class Building: > equipment = {} > def AddEquipment( name, data ): > equipment[ name ] = Equipment( data ) > > class Equipment: > components = {} > def AddComponent( name, data ): > components[ name ] = Component( data ) > > class Component: > data = "" > > These classes are used like so: > > test = Building() > test.AddEquipment( "equipment 1", data ) > test.AddEquipment( "equipment 2", data ) > test.equipment["equipment 1"].AddComponent( "component 1", data ) > test.equipment["equipment 1"].AddComponent( "component 2", data ) > test.equipment["equipment 2"].AddComponent( "component 3", data ) > > But it appears as though the instance of "equipment 1" has ALL of the > components in its components dictionary. I was hoping that the > test.equipment["equipment 1"].components dictionary would only have > those components that were assigned to "equipment 1". > > I have implemented __init__ functions for all of the classes, but all > they do is initialize some data that I haven't shown here. > > I think I'm trying to use a C++ way of doing this (without the new > operator) so if anyone would be so kind as to help with the Python way > of doing this sort of thing I will be eternally grateful. > > Cheers, > > Mark Shewfelt > > I don't see how your examples could work, helps if you post the actual code. Try these classes, I think they accomplish what your trying to do.
class Building: def __init__(self, data = ''): self.data = data self.equipment = {} def AddEquipment(self, name, data ): self.equipment[ name ] = Equipment( data ) class Equipment: def __init__(self, data = ''): self.data = data self.components = {} def AddComponent(self, name, data ): self.components[ name ] = Component( data ) class Component: def __init__(self, data): self.data = data -- http://mail.python.org/mailman/listinfo/python-list