2017-08-01 5 views
0

複雑な動作を可能にするために__getattr__メソッドをオーバーライドしました。しかし、私はまだ__builtin__機能のいくつかをデフォルトにしたいと考えています。例えば、私は__add____sub____mul__などを処理するために__getattr__を使用していたが、__iadd____isub____imul__などが__getattr__メソッドを使用しようとしていると、エラーを投げています。私はちょうど彼らの行動も定義することができますが、私はこれらのメソッドをデフォルトとして実行できるようにする方が良いと思います。python:__getattr__を選択的にオーバーライドする

結論:__getattr__は、処理する属性をフィルタリングし、デフォルトで実行できるようにしたいと考えています。

+0

したがって、カスタム '__getattr__'メソッドを持つクラスがありますか?期待される結果を持つ簡単なサンプルコードは、あなたが探しているものが完全にはっきりしないように見えるので参考になります。 –

答えて

0

私自身の質問です。私は、属性のグループを処理するためのif文を使用し、最後の手段としてreturn getattr(my_cls_name, attr)を使用して、他の組み込み関数を正常に実行できるようにしました。だから、__iadd__ハンドラがないことが分かったら、代わりに__add__を使用します。他の演算子と同じです。

関連する問題