getter and setter and list appends

dasacc22 dasacc22 at
Mon Apr 20 18:57:00 CEST 2009


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.

My class looks like this,

class Widget(object):
    _parent = None
    _children = []

    def __init__(self, parent=None):
        self.parent = parent

    def children(self):
        return self._children

    def parent(self):
        return self._parent

    def parent(self, obj):
        if obj:
            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


More information about the Python-list mailing list