python 内建函数 str() 和 repr() 的区别

1、内建函数str()和repr() 或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。

2、str()函数得到的字符串可读性好(故被print调用)

3、repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串。

4、事实上repr()和``做一样的事情,返回一个对象的“官方”字符串表示。其结果绝大多数情况下(不是所有)可以通过求值运算(内建函数eval())重新得到该对象。

str()则不同,它生成一个对象的可读性好的字符串表示,结果通常无法用eval()求值,但适合print输出。

a = 'Hello, world.'
b = str(a)
c = eval(repr(a))
print a==b
print a==c
print str(a)   #对用户友好
print repr(a)  # 对python友好

结果如下:

True
False
True
Hello, world.  
'Hello, world.'