On Wed, Jan 13, 2010 at 9:24 PM, Guilherme P. de Freitas <guilhe...@gpfreitas.com> wrote: > Hi everybody, > > Here is my problem. I have two classes, 'Body' and 'Member', and some > attributes of 'Body' can be of type 'Member', but some may not. The > precise attributes that 'Body' has depend from instance to instance, > and they can be added or deleted. I need any instance of 'Body' to > keep an up-to-date list of all its attributes that belong to the class > 'Member'. How do I do this?
If you want to keep track of attributes as they are added and deleted, you should override __setattr__() and __delattr__() in your Body class. http://docs.python.org/reference/datamodel.html#customizing-attribute-access Here is a simple example: In [4]: class LogAttributes(object): ...: def __setattr__(self, name, value): ...: print 'setting', name, 'to', value, type(value) ...: object.__setattr__(self, name, value) ...: def __delattr__(self, name): ...: print 'removing', name ...: object.__delattr__(self, name) In [5]: l = LogAttributes() In [6]: l.foo = 'bar' setting foo to bar <type 'str'> In [7]: l.foo Out[7]: 'bar' In [8]: del l.foo removing foo Kent _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor