首頁 > 後端開發 > Python教學 > 如何重寫`__str__`和`__repr__`來自訂類別實例的列印輸出?

如何重寫`__str__`和`__repr__`來自訂類別實例的列印輸出?

Susan Sarandon
發布: 2025-01-03 04:45:38
原創
494 人瀏覽過

How to Override `__str__` and `__repr__` for Customized Print Output of Class Instances?

如何使用print() 自訂類別實例的字串表示

列印類別的實例時,預設行為通常會顯示物件的內存位置。若要自訂字串表示形式並控制列印時顯示的內容,您可以實作兩種特殊方法: str 和 __repr__。

__str__:定義人類可讀的字串表示形式

str 方法定義了一般物件的字串表示形式 使用。當您在物件上呼叫 print() 或 str() 時,會呼叫它。透過重寫 __str__,您可以定義列印時顯示的自訂輸出。

__repr__:定義用於調試的字串表示形式

repr方法定義用於調試目的的字串表示形式。當您在物件上呼叫 repr() 或未定義 str__ 時,會呼叫它。 __repr 表示形式應該是計算結果為物件的有效 Python 表達式。

範例

要自訂類別實例的字串表示形式:

class Test:
    def __init__(self):
        self.a = 'foo'

    def __str__(self):
        return "member of Test"

    def __repr__(self):
        return "Test()"
登入後複製

在上面的範例中:

  • 當您列印物件時,str方法傳回一個人類可讀的字串,「Test 成員」。
  • repr 方法傳回一個有效的 Python 表達式,“Test ()”,這將重新建立該物件。

當您列印此實例時class:

t = Test()
print(t)
登入後複製

它將在控制台上顯示“Test 成員”,提供自訂且有意義的表示。

以上是如何重寫`__str__`和`__repr__`來自訂類別實例的列印輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板