from the [Python documentation](https://docs.python.org/2/library/functions.html#property), I see that you can set methods for handling properties transparently:

```
class C(object):
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, "I'm the 'x' property.")

```

Now assume that `C._x` is a list. In init it is simply set to `[]`. So if I do the following:

```
c = C()
c.x = [1,2,3]

```

`c.x` will be set to `[1,2,3]`. What I want to be able to do now is

```
#...
c.x += 4

```

So that `c.x` is now `[1,2,3,4]`. The example is trivial, but obviously, I'd want the `setx` and `getx` methods to include some sort of processing and checks. Otherwise, using this approach would be silly. 

**Edit:** It might be good enough to just use the `__add__` method on `C` to enforce the behaviour, but I wondered if it was possibly to put the behaviour on the property instead of the whole class