python的class的__str__()和__repr__()函數


 

 

repr(object)

返回一個可以用來表示對象的可打印字符串
首先,嘗試生成這樣一個字符串,將其傳給 eval()可重新生成同樣的對象 
否則,生成用尖括號包住的字符串,包含類型名和額外的信息(比如地址) 
一個類(class)可以通過 __repr__() 成員來控制repr()函數作用在其實例上時的行為。

 

str([object])

返回一個可以用來表示對象的可打印的友好的字符串.
對字符串,返回本身。 
沒有參數,則返回空字符串 
對類,可通過 __str__() 成員控制其行為。該成員不存在,則使用其 __repr__() 成員。
與 repr 區別:不總是嘗試生成一個傳給 eval 的字符串,其目標是可打印字符串。

 

python2 中:

__repr__()
 如前所述
 
__str__()
 如前所述,返回字符串(字節流)
 
__unicode__()
 返回unicode字符串
 

實現類時,應該實現 __unicode__(),然后提供了一個某種編碼的 __str__()

def __str__(self):    return unicode(self).encode('utf-8')
在python3中: __str__() 直接就是 unicode,字節流由__bytes__()提供。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM