私はPythonクラスFoo
とよりメモリを意識したバージョンLightFoo
を持っています。その属性に含まれる情報は最終的には同じですが、別の方法でエンコードされます。キャストで一括してPythonメソッドを実装する
Foo
の方法の一握りを完全にLightFoo
のために再書き込まれますが、それらのほとんどのためにFoo
にLightFoo
インスタンスをキャストし、対応するFoo
メソッドを呼び出す罰金になります。例えば、LightFoo
は、次のものがありますFoo
は100個のメソッドを持って
def total(self):
self.fooize().total()
場合は、しかし、これは本当に退屈な取得します。本当に便利なのは、LightFoo
をFoo
から継承し、デフォルトではLightFoo
に見つからないすべてのメソッドに何らかの形で挿入することです。私はこれが不可能だと確信していますが、Foo
のメソッドごとに上記のようなブロックを書くよりも優れたアプローチが必要なようです。
'LightFoo'が' Foo'を継承している場合、 'LightFoo'で定義していないメソッドは自動的にデフォルトで' Foo'になります。それはあなたが探しているものではありませんか? – dwanderson