Jak zaimplementować __getattribute__ bez nieskończonego błędu rekurencji?

| |

Chcę zastąpić dostęp do jednej zmiennej w klasie, ale wszystkie inne zwracam normalnie. Jak mogę to osiągnąć za pomocą __getattribute__?

Próbowałem następujących rzeczy (co powinno również zilustrować to, co próbuję zrobić), ale pojawia się błąd rekurencji:

class D(object): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=="test": return 0. else: return self.__dict__[name] >>> print D().test 0.0 >>> print D().test2 ... RuntimeError: przekroczono maksymalną głębokość rekurencji w cmp