考慮下面的程式碼片段:
據觀察,自訂__repr__ 方法不會被呼叫實例a.要理解這種行為,必須注意:
在CPython(標準Python在解釋器)中,名稱被 __ 包圍的特殊方法通常不會在實例上調用,而是在類別上調用。因此,嘗試直接在實例上覆寫 __repr__ 將不會產生預期結果。
要解決此限制,可以利用以下策略:
此處,__repr__呼叫輔助方法 _repr,然後該方法呼叫物件類別的預設 __repr__ 實作。透過重寫 _repr,我們可以有效地重寫實例上的 __repr__。
以上是為什麼在 Python 中重寫實例上的 `__repr__` 不起作用,如何有效實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!