溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python面向?qū)ο缶幊蘲epr方法教程

發(fā)布時(shí)間:2021-09-29 15:14:59 來(lái)源:億速云 閱讀:144 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Python面向?qū)ο缶幊蘲epr方法教程”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python面向?qū)ο缶幊蘲epr方法教程”吧!

目錄
  • 為什么要講 __repr__

  • 重寫(xiě) __repr__ 方法

  • str() 和 repr() 的區(qū)別

為什么要講 __repr__

在 Python 中,直接 print 一個(gè)實(shí)例對(duì)象,默認(rèn)是輸出這個(gè)對(duì)象由哪個(gè)類(lèi)創(chuàng)建的對(duì)象,以及在內(nèi)存中的地址(十六進(jìn)制表示)

假設(shè)在開(kāi)發(fā)調(diào)試過(guò)程中,希望使用 print 實(shí)例對(duì)象時(shí),輸出自定義內(nèi)容,就可以用 __repr__ 方法了

或者通過(guò) repr() 調(diào)用對(duì)象也會(huì)返回 __repr__ 方法返回的值

是不是似曾相識(shí)....沒(méi)錯(cuò)..和 __str__ 一樣的感覺(jué) 代碼栗子

class A:
    pass
 
    def __repr__(self): 
a = A()
print(a)
print(repr(a))
print(str(a))  
# 輸出結(jié)果
<__main__.A object at 0x10e6dbcd0>
<__main__.A object at 0x10e6dbcd0>
<__main__.A object at 0x10e6dbcd0>

默認(rèn)情況下,__repr__() 會(huì)返回和實(shí)例對(duì)象 <類(lèi)名 object at 內(nèi)存地址> 有關(guān)的信息

重寫(xiě) __repr__ 方法

class PoloBlog:
    def __init__(self):
        self.name = "小菠蘿"
        self.add = "https://www.cnblogs.com/poloyy/"
 
    def __repr__(self):
        return "test[name=" + self.name + ",add=" + self.add + "]"  
blog = PoloBlog()
print(blog)
print(str(blog))
print(repr(blog)) 
# 輸出結(jié)果
test[name=小菠蘿,add=https://www.cnblogs.com/poloyy/]
test[name=小菠蘿,add=https://www.cnblogs.com/poloyy/]
test[name=小菠蘿,add=https://www.cnblogs.com/poloyy/]

只重寫(xiě) __repr__ 方法,使用 str() 的時(shí)候也會(huì)生效哦

class PoloBlog:
    def __init__(self):
        self.name = "小菠蘿"
        self.add = "https://www.cnblogs.com/poloyy/"
 
    def __str__(self):
        return "test[name=" + self.name + ",add=" + self.add + "]"
 
blog = PoloBlog()
print(blog)
print(str(blog))
print(repr(blog))
 
# 輸出結(jié)果
test[name=小菠蘿,add=https://www.cnblogs.com/poloyy/]
test[name=小菠蘿,add=https://www.cnblogs.com/poloyy/]
<__main__.PoloBlog object at 0x10e2749a0>

只重寫(xiě) __str__ 方法的話(huà),使用 repr() 不會(huì)生效的哦!

到此,相信大家對(duì)“Python面向?qū)ο缶幊蘲epr方法教程”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI