On Sat, 01 Jan 2011 17:59:33 -0800, Josh English wrote: > I have hit yet another wall. I am dynamically creating a class and then > creating instances of that class. The class relies on a second class to > store a list of objects. (This is simplified from the the original by a > factor of about 20.
Sounds like it's about 40 times too complex then: aim for something about half the complexity of this "simplified" version. > The real program is trying to create a Python object > around an XML definition object.) > > Here's the code: > > ## OPTION ONE for class: ElementList > ### Not really a list, but a wrapper that behaves like a list class > ElementList(object): > def __init__(self, parent, name): > self._parent = parent > self._name = name Doesn't behave much like a list for me :) > def MakeWrapper(checker, _addNameAsAttribute = False ): > ## OPTION TWO for class: ElementList > class Wrap(object): > ## OPTION THREE for class: Elementlist > def __init__(self, name): > self._name = name > setattr(Wrap, 'stuff', ElementList(self, 'test')) > Wrap.__name__= checker.title() > return Wrap Your problem is that all the instances from a MakeWrapper class share the same "stuff" attribute, which is attached to the class Wrap. What you probably want is: setattr(self, 'stuff', ElementList(self, 'test')) instead. What you *need* is to rethink this complicated strategy for a simpler one. -- Steven -- http://mail.python.org/mailman/listinfo/python-list