現在のクラスまたはその先祖に存在しない属性にアクセスしようとすると、メンバーからそれらの属性にアクセスしようとするクラスを実装しようとしています。以下は、私がやろうとしていることの簡単なバージョンです。
class Foo:
def __init__(self, value):
self._value = value
def __getattr__(self, name):
return getattr(self._value, name)
if __name__ == '__main__':
print(Foo(5) > Foo(4)) # should do 5 > 4 (or (5).__gt__(4))
ただし、これによりTypeError
. operator
モジュールのattrgetter
クラスを使用しても同じことができます。属性アクセスのカスタマイズに関するドキュメントを見ていましたが、簡単に読めるものではありませんでした。どうすればこれを回避できますか?