You can also subclass the dictionary type so that this happens transparently.
You could do something similar with lists.
class Container(dict):
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
if hasattr(value, 'setParent'):
if callable(value.setParent):
value.setParent(self)
class Contained:
def setParent(self, p):
self.parent = p
bag = Container()
print id(bag)
item1 = Contained()
item2 = Contained()
bag['a'] = item1
bag['b'] = item2
print id(item1.parent)
print id(item2.parent)
Cheers
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor