¿Cómo implemento __getattribute__ sin un error de recursión infinita?

| |

Quiero anular el acceso a una variable en una clase, pero devolver todas las demás normalmente. ¿Cómo logro esto con __getattribute__?

Intenté lo siguiente (que también debería ilustrar lo que estoy tratando de hacer) pero obtengo un error de recurrencia:

clase D(objeto): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=="test": return 0. else: return self.__dict__[nombre] >>>print D().test 0.0 >>>print D().test2 ... RuntimeError: profundidad máxima de recursión excedida en cmp