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