Thanks a lot Tim! My __init__ functions didn't set the dictionaries like you did below (e.g. self.equipment = {} ).
Newbie mistake - won't make that one again. Thanks again, Mark Tim wrote: > 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