On Wed, 13 Jan 2010 20:15:21 -0800
"Guilherme P. de Freitas" <guilhe...@gpfreitas.com> wrote:

> Ok, I got something that seems to work for me. Any comments are welcome.
> 
> 
> class Member(object):
>     def __init__(self):
>         pass
> 
> 
> class Body(object):
>     def __init__(self):
>         self.members = []
> 
>     def __setattr__(self, obj, value):
>         if isinstance(value, Member):
>             self.members.append(obj)
>             object.__setattr__(self, obj, value)
>         else:
>             object.__setattr__(self, obj, value)
> 
>     def __delattr__(self, obj):
>         if isinstance(getattr(self, obj), Member):
>             self.members.remove(obj)
>             object.__delattr__(self, obj)
>         else:
>             object.__delattr__(self, obj)

Seems perfectly ok to me, except for if...else constructs in place of simple 
if's: an optional statement is added in case obj is of type Member; this is not 
an alternative.

if isinstance(value, Member):
    self.members.append(obj)
object.__setattr__(self, obj, value)    # in both cases

Same for __delattr__, indeed.

Denis
________________________________

la vita e estrany

http://spir.wikidot.com/
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to