第8.15节 Python重写自定义类的__repr__方法
生活随笔
收集整理的這篇文章主要介紹了
第8.15节 Python重写自定义类的__repr__方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 引言
前面兩節分別介紹了Python類中的__str__和__repr__方法的作用和語法,所有新式類都支持這兩個方法,因為object類實現了這兩個方法,但實際上各位開發者在自定義類的過程中,應該重寫相關方法,特別是__str__輸出的應該是用戶關注的容易理解的信息,因此對那些負責與客戶交互的類,至少更應該重寫__str__方法。
二、 重寫__repr__方法
object類提供的__repr__方法,只是簡單輸出模塊名、類名以及對象的ID信息,如果開發者要輸出開發人員足夠知悉的屬性,就需要重寫該方法。
重寫__repr__方法注意:
三、 例子
本節利用Car類來說明__repr__方法,在類中重寫了__repr__方法,返回的信息包括:
1> 類定義
2> 實例定義及查看信息()
car = Car('雪佛蘭','科帕奇','白色',1.8,10) car #查看實例信息,此時會調用__repr__方法 print(car) #查看實例信息,此時會調用__str__方法,但沒有重寫__str__方法,效果會怎樣?通過《第8.13節 Python類中內置方法的__repr__詳解》知道,沒有重寫__repr__方法時,調用的是object類的__repr__方法,僅輸出簡單的類信息和ID信息。通過上述案例說明:
1> 重寫__repr__方法后,查看對象會觸發重寫方法的調用,其他觸發方式請見《第8.13節 Python類中內置方法__repr__詳解》,在例子中沒有再展開介紹;
2>object類__repr__方法輸出結果與repr(self.class),id(self)獲取的基礎信息相同,而直接調用object類__repr__方法更簡單,因此老猿建議對基礎信息的輸出還是直接調用父類的方法輸出;
3> 使用print(car)應該輸出__str__方法返回的內容,但實際輸出的是重寫__repr__方法輸出的內容。這是因為自定義類沒有重寫__str__方法的情況下,Python會直接調用__ repr __方法輸出,要輸出單獨的__str__信息需要重寫__str__方法,這個在下節將進行驗證。
本節結合案例介紹了 __repr__方法的重寫,可以看到通過重寫該方法如果輸出數據得當,相關信息有利于程序調試和跟蹤。
老猿Python系列文章用于逐步介紹老猿學習Python后總結的學習經驗,這些經驗有助于沒有接觸過Python的程序員可以很容易地進入Python的世界。
歡迎大家批評指正,謝謝大家關注!
轉載于:https://www.cnblogs.com/LaoYuanPython/p/11144509.html
總結
以上是生活随笔為你收集整理的第8.15节 Python重写自定义类的__repr__方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GridView隐藏列, 并能读取列值的
- 下一篇: 传输协议不安全,数据泄露谁之过?——流量