[解決済み] __getattr__ と __getattribute__ の違い
2022-03-20 17:08:23
質問
を使用するタイミングを理解しようとしています。
__getattr__
または
__getattribute__
. は
ドキュメンテーション
言及
__getattribute__
は新スタイルのクラスに適用されます。新スタイルのクラスとは何ですか?
どのように解決するのですか?
との主な違いは
__getattr__
と
__getattribute__
は、その
__getattr__
は、通常の方法で属性が見つからなかった場合にのみ呼び出されます。 これは、属性が見つからない場合のフォールバックを実装するのに適しており、おそらくあなたが望む2つのうちの1つでしょう。
__getattribute__
はオブジェクトの実際の属性を見る前に呼び出されるため、正しく実装するのが難しい場合があります。 無限ループに陥る可能性があります。
新スタイルのクラスは
object
Python 2.xでは、古いスタイルのクラスは明示的な基底クラスがないものです。 しかし、古いスタイルのクラスと新しいスタイルのクラスの区別は
__getattr__
と
__getattribute__
.
ほぼ間違いなく
__getattr__
.
関連
-
Pythonによるjieba分割ライブラリ
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Pythonの旧スタイルのクラスと新スタイルのクラスの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】__getattr__と__getattribute__の違いについて理解する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
PythonはWordの読み書きの変更操作を実装している
-
python implement mysql add delete check change サンプルコード
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] Pythonの旧スタイルのクラスと新スタイルのクラスの違いは何ですか?
-
[解決済み】__getattr__と__getattribute__の違いについて理解する。