[Tutor] Keeping a list of attributes of a certain type

spir denis.spir at free.fr
Thu Jan 14 13:39:00 CET 2010


On Wed, 13 Jan 2010 20:15:21 -0800
"Guilherme P. de Freitas" <guilherme at 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/


More information about the Tutor mailing list