On Thursday, June 9, 2016 at 8:28:47 AM UTC+1, Nagy László Zsolt wrote: > class Test: > def __init__(self): > self._parent = None > > @property > def parent(self): > return self._parent > > @parent.setter > def set_parent(self, new_parent): > self._parent = new_parent > > > p, c = Test(), Test() > c.parent = p > > >py -3 test.py > > Traceback (most recent call last): > File "test.py", line 15, in <module> > c.parent = p > AttributeError: can't set attribute > > BTW this does work, but it is not that elegant: > > class Test: > def __init__(self): > self._parent = None > > def get_parent(self): > return self._parent > > def set_parent(self, new_parent): > self._parent = new_parent > > parent = property(get_parent, set_parent) > > > p, c = Test(), Test() > c.parent = p
Change the name of the setter from set_parent to parent, i.e., @parent.setter def parent(self, new_parent): ... That works for me on Python 3.4. -- https://mail.python.org/mailman/listinfo/python-list