[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