無限の再帰エラーなしで__getattribute__を実装するにはどうすればよいですか?

| |

クラス内の1つの変数へのアクセスをオーバーライドしたいのですが、他のすべての変数を通常どおり返します。 __ getattribute __ でこれを達成するにはどうすればよいですか?

次のことを試しましたが(これは私がやろうとしていることも示しているはずです)、再帰エラーが発生します:

  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:最大再帰深度をcmpで超えました