getattr と getattribute
の違いを理解する Python クラスを使用する場合、開発者は多くの場合、カスタム属性を定義したり、欠落している属性を処理したりする必要が生じます。この目的で使用できる 2 つのメソッドは、getattr と __getattribute__ です。
getattr と getattribute
主な違いは、 getattr と getattribute は、実行順序と目的にあります。
__getattr__:
__getattribute__:
新しいスタイルのクラス
ドキュメントには次のように記載されていますgetattribute__ のコンテキストにおける新しいスタイルのクラス。新しいスタイルのクラスは、基本クラス オブジェクトから派生したクラスです。ただし、__getattr と __getattribute__ のどちらを選択する場合、この区別は重要ではありません。
いつどのメソッドを使用するか
ほとんどの場合、 getattr が推奨されるオプションです。これにより、__getattribute__ の複雑さを排除した簡単なフォールバック メカニズムが可能になります。
対照的に、getattribute は、属性アクセスを完全に操作またはオーバーライドする必要がある高度なシナリオで使用されます。ただし、再帰的なトラップの可能性があるため、慎重に扱う必要があります。
以上がPython で getattr と __getattribute__ を使用する場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。