Python中如何使用__str__()函數定義物件的字串表示形式
在Python中,每個物件都有一個字串表示形式,用於在列印物件時顯示其內容。通常情況下,物件的預設字串表示形式是無法滿足我們的需求的。為了自訂物件的字串表示形式,我們可以使用Python中的__str__()函數。
__str__()函數是一個特殊的方法,用於將物件轉換為字串。當我們列印一個物件時,Python會自動呼叫該物件的__str__()函數,並將其傳回值作為字串列印出來。
下面是一個簡單的範例,示範如何在Python中使用__str__()函數定義物件的字串表示形式:
class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"Person(name={self.name}, age={self.age})" person = Person("Tom", 25) print(person)
在上面的程式碼中,我們定義了一個名為Person的類,該類別具有兩個屬性:name和age。我們在類別中定義了一個__str__()函數,並在其中傳回一個格式化的字串,該字串包含了物件的屬性值。
當我們建立了一個Person物件並列印它時,Python會自動呼叫該物件的__str__()函數,並將其傳回值列印出來。輸出結果將是:
Person(name=Tom, age=25)
透過定義__str__()函數,我們可以將物件的屬性值以更直觀的方式顯示出來,方便我們偵錯和理解程式。我們可以根據自己的需求自訂__str__()函數中的字串格式,並精確控制列印出來的內容。
除了__str__()函數外,Python也提供了另一個特殊方法__repr__()。 __repr__()方法傳回的字串應該是一個可用來建立該物件的有效Python表達式。如果我們不定義__str__()函數,Python會預設呼叫物件的__repr__()函數來列印物件。
下面是一個範例,示範如何使用__repr__()方法:
class Person: def __init__(self, name, age): self.name = name self.age = age def __repr__(self): return f"Person(name={self.name}, age={self.age})" person = Person("Tom", 25) print(person)
這段程式碼與前面的範例程式碼幾乎相同,唯一的差異是我們使用了__repr__()方法而不是__str__()方法。輸出結果仍然是相同的:
Person(name=Tom, age=25)
需要注意的是,__str__()方法主要用於提供物件的描述性字串,而__repr__()方法主要用於提供用於重構物件的字串。在實際開發中,我們可以根據需要選擇使用哪個方法,或同時定義兩個方法,以提供更全面的字串表示形式。
以上是Python中如何使用__str__()函數定義物件的字串表示形式的詳細內容。更多資訊請關注PHP中文網其他相關文章!