了解getatt
getattr 與 getattribute
何時定義getattr
getattr方法旨在處理使用以下方法找不到屬性的情況:通常的屬性解析機制。此函數使 getattr 成為實現缺失屬性的回退機制的理想選擇。
何時定義getattribute
另一方面,getattribute__ 在解釋器嘗試直接存取物件的屬性之前被呼叫。由於其早期調用,正確實現 __getattribute可能具有挑戰性,因為它很容易引入無限遞歸。
新式類
之間的區別🎜>getattr 和根據該類別是否為新式類別。 Python 2.2 中引入的新類別以 object 作為其顯式或隱式基底類別。然而,舊式與新式類別的區別並不是選擇 getattr 而不是 __getattribute__ 的主要因素。
選擇 getattr
在大多數實際情況下,getattr是更合適的選擇。它允許對遺失的屬性實施優雅的回退機制,而 getattribute 需要仔細實施以避免遞歸問題。
以上是什麼時候應該使用 getattr 以及什麼時候應該使用 __getattribute__?的詳細內容。更多資訊請關注PHP中文網其他相關文章!