Método de establecimiento de decorador de propiedad no se llama

Estoy tratando de usar un método de propiedad para establecer el estado de una instancia de clase, con la siguiente definición de clase:

class Result:
    def __init__(self,x=None,y=None):
        self.x = float(x)
        self.y = float(y)
        self._visible = False
        self._status = "You can't see me"

    @property
    def visible(self):
        return self._visible

    @visible.setter
    def visible(self,value):
        if value == True:
            if self.x is not None and self.y is not None:
                self._visible = True
                self._status = "You can see me!"
            else:
                self._visible = False
                raise ValueError("Can't show marker without x and y coordinates.")
        else:
            self._visible = False
            self._status = "You can't see me"

    def currentStatus(self):
        return self._status

A pesar de los resultados, parece que el método de establecimiento no se está ejecutando, aunque la variable interna se está cambiando

>>> res = Result(5,6)
>>> res.visible
False
>>> res.currentStatus()
"You can't see me"
>>> res.visible = True
>>> res.visible
True
>>> res.currentStatus()
"You can't see me"

¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta