您好,登錄后才能下訂單哦!
本篇內(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ū)別
在 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)的信息
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í)!
免責(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)容。