getter and setter and list appends
Terry Reedy
tjreedy at udel.edu
Mon Apr 20 15:12:45 EDT 2009
dasacc22 wrote:
> Hi,
>
> I seem to be having a problem with a list being share across multiple
> instantiations of it and dont quite understand why this is happening.
Class attributes are shared by all instances.
> My class looks like this,
>
> class Widget(object):
> _parent = None
> _children = []
Move this line
>
> def __init__(self, parent=None):
> self.parent = parent
to here.
>
> @property
> def children(self):
> return self._children
>
> @property
> def parent(self):
> return self._parent
>
> @parent.setter
> def parent(self, obj):
> if obj:
> obj._children.append(self)
> self._parent = obj
>
>
> now if i make instances and attach children like so
>
> a = Widget()
> b = Widget(a)
> c = Widget(a)
> d = Widget(c)
>
> Basically all the objects end up sharing the _children list from `a`
> instead of forming something like a tree. Any advice would be greatly
> appreciated.
>
> Thanks,
> Daniel
> --
> http://mail.python.org/mailman/listinfo/python-list
>
More information about the Python-list
mailing list