課程
/后端開發
/Python
/Python3 進階教程(新版)
如果類中只定義__str__()方法,沒有定義__repr___()方法,打印對象同樣可以打印出格式化后的對象,而不是地址
2021-05-05
源自:Python3 進階教程(新版) 4-2
正在回答
個人理解:只要重寫了 __str__()方法,不管是打印對象還是打印對象的字符串格式,其調用的都是 __str__()方法,所以顯示的都是格式化的結果。也就是說,print(str(obj)) 和 print(obj) 是一樣的
而只有在控制臺(window下的cmd,命令提示符)中,在python環境下直接輸入(不是打?。﹐bj,回車,調用的才是 __repr__()方法。如果沒有重寫該方法,還是會顯示對象所在的地址
str是對用戶 顯式調用時可以打印,repr是在控制臺直接輸出 對象變量時調用,需要自己再重寫,不然還是地址內容輸出
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2021-09-28
個人理解:只要重寫了 __str__()方法,不管是打印對象還是打印對象的字符串格式,其調用的都是 __str__()方法,所以顯示的都是格式化的結果。也就是說,print(str(obj)) 和 print(obj) 是一樣的
而只有在控制臺(window下的cmd,命令提示符)中,在python環境下直接輸入(不是打?。﹐bj,回車,調用的才是 __repr__()方法。如果沒有重寫該方法,還是會顯示對象所在的地址
2021-06-11
str是對用戶 顯式調用時可以打印,repr是在控制臺直接輸出 對象變量時調用,需要自己再重寫,不然還是地址內容輸出