亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中__repr__與__str__方法詳解

 更新時(shí)間:2025年11月14日 08:25:47   作者:小小小小祥  
本文主要介紹了python中__repr__與__str__方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

__str__ __repr__ 是 Python 中兩個(gè)非常重要的魔法方法,它們都用于定義對(duì)象的字符串表示,但各自的使用場(chǎng)景和目標(biāo)有所不同。

1.__str__:面向用戶的字符串表示

  • 目的:__str__ 主要用于為對(duì)象提供一個(gè)友好的、易于理解的字符串表示,通常是面向終端用戶或者外部系統(tǒng)的輸出。
  • 用途:當(dāng)你使用 print() 函數(shù)或者 str() 函數(shù)時(shí),Python 會(huì)調(diào)用對(duì)象的 __str__ 方法。它應(yīng)該返回一個(gè)簡(jiǎn)潔、直觀且易于閱讀的字符串。

代碼示例:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"Point at ({self.x}, {self.y})"

p = Point(3, 4)
print(p)

代碼輸出:

Point at (3, 4)

2.__repr__:面向開發(fā)者的字符串表示

  • 目的:__repr__ 的主要目的是為開發(fā)者提供一種無(wú)歧義的、盡可能詳細(xì)的字符串表示,以便于調(diào)試和開發(fā)。它應(yīng)該盡量返回一個(gè)能夠重新構(gòu)建該對(duì)象的字符串(或至少能夠描述該對(duì)象)。
  • 用途:__repr__ 通常用于調(diào)試、日志記錄、交互式環(huán)境(如 Python shell),以及當(dāng)你打印對(duì)象時(shí),Python 會(huì)自動(dòng)調(diào)用該方法。如果未定義 __str__ 方法,__repr__ 會(huì)被用作 print() 輸出的后備方法。

代碼示例:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Point(x={self.x}, y={self.y})"

p = Point(3, 4)
print(repr(p))

代碼輸出:

Point(x=3, y=4)

3.__str__vs__repr__:區(qū)別

特性__str____repr__
目標(biāo)面向終端用戶,簡(jiǎn)潔、友好、易讀面向開發(fā)者,詳細(xì)、無(wú)歧義、可重建對(duì)象
輸出格式通常為簡(jiǎn)單的字符串描述,易于理解返回盡可能完整的對(duì)象信息,通常包括類名和參數(shù)
用途主要用于 print()、str() 輸出主要用于調(diào)試、交互式環(huán)境、日志記錄
默認(rèn)行為如果沒有定義 __str__,Python 會(huì)調(diào)用 __repr__如果沒有定義 __repr__,Python 會(huì)調(diào)用默認(rèn)的 __repr__,該默認(rèn)方法返回一個(gè)類似 <__main__.ClassName object at 0x000000> 的表示

4. 綜合示例

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"Point at ({self.x}, {self.y})"

    def __repr__(self):
        return f"Point(x={self.x}, y={self.y})"

# 創(chuàng)建一個(gè) Point 對(duì)象
p = Point(3, 4)

# 面向用戶的字符串表示
print(str(p))  # Output: Point at (3, 4)

# 面向開發(fā)者的字符串表示
print(repr(p))  # Output: Point(x=3, y=4)

總結(jié)

  • __str__ 是用戶友好的輸出,返回一個(gè)易于理解的字符串
  • __repr__ 是開發(fā)者友好的輸出,返回一個(gè)更詳細(xì)的、能夠重建對(duì)象的字符串
  • 如果 __str__ 沒有定義,Python 會(huì)回退到使用 __repr__

到此這篇關(guān)于python中__repr__與__str__方法詳解的文章就介紹到這了,更多相關(guān)python __repr__ __str__內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論