Steve Holden wrote: > [EMAIL PROTECTED] wrote: > > I have a problem. I'm writing a simulation program with a number of > > mechanical components represented as objects. When I create instances > > of objects, I need to reference (link) each object to the objects > > upstream and downstream of it, i.e. > > > > supply = supply() > > compressor = compressor(downstream=combustor, upstream=supply) > > combuster = combuster(downstream=turbine, upstream=compressor) > > etc. > > > > the problem with this is that I reference 'combustor' before is it > > created. If I swap the 2nd and 3rd lines I get the same problem > > (compressor is referenced before creation). > > > > > > aargh!!! any ideas on getting around this? > > > Yes. You are building a generic data structure, so you shouldn't really > be trying to store individual objects in variables like that. You need a > data structure that's appropriate to your problem. > > For example, you could consider storing them in a list, so you have > > components = [supply(), compressor(), combuster()] > > Then components[n] is upstream of components[n-1] and downstream of > components[n+1].
Unfortunately, if he wanted to make the topology more complicated, for instance having two components downstream, it would be much more cumbersome to inherit the list object and implement this. > In short, your thinking about data representation might need to become a > little more sophisticated. That sounds a little arrogant. sorry! > regards > Steve > -- > Steve Holden +44 150 684 7255 +1 800 494 3119 > Holden Web LLC/Ltd http://www.holdenweb.com > Skype: holdenweb http://holdenweb.blogspot.com > Recent Ramblings http://del.icio.us/steve.holden -- http://mail.python.org/mailman/listinfo/python-list