def getx(self):
    return self._x

def gety(self):
    return self._y
x = property(getx)
y = property(gety)
p = ReadOnlyPoint(2, 3)
print(p.x, p.y)
p.x = 9
p._x = 9
print(p.x, p.y)
Impossible to set an attribute to a string?