Как реализовать __getattribute__ без ошибки бесконечной рекурсии?

| |

Я хочу переопределить доступ к одной переменной в классе, но нормально вернуть все остальные. Как это сделать с помощью __getattribute__?

Я пробовал следующее (что также должно иллюстрировать то, что я пытаюсь сделать), но получаю ошибку рекурсии:

класс D(объект): def __init__(self): self.test=20 self.test2=21 def __getattribute__(self,name): if name=="test": вернуть 0. иначе: вернуть self.__dict__[name] >>>print D().test 0.0 >>>print D().test2 ... RuntimeError: превышена максимальная глубина рекурсии в cmp