您的位置:首页 > 编程语言 > Python开发

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

2016-11-29 14:36 435 查看




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__()提供。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: