Python面向?qū)ο缶幊蘲epr方法示例詳解
為什么要講 __repr__
在 Python 中,直接 print 一個(gè)實(shí)例對(duì)象,默認(rèn)是輸出這個(gè)對(duì)象由哪個(gè)類創(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ì)象 <類名 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__ 方法的話,使用 repr() 不會(huì)生效的哦!
str() 和 repr() 的區(qū)別
http://chabaoo.cn/article/64333.htm
以上就是Python面向?qū)ο缶幊蘲epr方法示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python面向?qū)ο缶幊蘲epr的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python3.6 實(shí)現(xiàn)AES加密的示例(pyCryptodome)
本篇文章主要介紹了python3.6 實(shí)現(xiàn)AES加密的示例(pyCryptodome),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01python安裝numpy&安裝matplotlib& scipy的教程
下面小編就為大家?guī)?lái)一篇python安裝numpy&安裝matplotlib& scipy的教程。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情
這篇文章主要介紹了Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Python多進(jìn)程并發(fā)(multiprocessing)用法實(shí)例詳解
這篇文章主要介紹了Python多進(jìn)程并發(fā)(multiprocessing)用法,實(shí)例分析了multiprocessing模塊進(jìn)程操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的完整代碼
這篇文章主要給大家介紹了關(guān)于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python實(shí)現(xiàn)12306火車票搶票系統(tǒng)
這篇文章主要介紹了Python實(shí)現(xiàn)12306火車票搶票系統(tǒng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07利用Python通過(guò)獲取剪切板數(shù)據(jù)實(shí)現(xiàn)百度劃詞搜索功能
大家是不是嫌棄每次打開(kāi)百度太麻煩?今天教大家利用Python通過(guò)獲取剪切板數(shù)據(jù)實(shí)現(xiàn)百度劃詞搜索功能,用程序直接打開(kāi)網(wǎng)頁(yè),需要的朋友可以參考下2021-06-06python妹子圖簡(jiǎn)單爬蟲(chóng)實(shí)例
這篇文章主要介紹了python妹子圖簡(jiǎn)單爬蟲(chóng),實(shí)例分析了Python爬蟲(chóng)程序所涉及的頁(yè)面源碼獲取、進(jìn)度顯示、正則匹配等技巧,需要的朋友可以參考下2015-07-07