笔者学习python(2.7.3),对于srt()和repr()函数有些混淆,仔细研究了一下,以下是一点心得。

1、str()函数

str()返回一个字符串,是对象的可打印的显示。字符串就返回本身。

>>> x=3
>>> str(x)
'3'
>>> x='hello'
>>> str(x)
'hello'

2、repr()函数

repr()也返回一个字符串,它用合法的python表达式的形式来表示值。它的返回结果可以作为eval()的参数。

>>> x=3
>>> repr(x)
'3'
>>> x='hello'
>>> repr(x)
"'hello'"
>>> x.__repr__()
"'hello'"
>>> print repr("hello")
'hello'
>>> print repr(10000L)
10000L

repr()实际调用一个__repr__()的方法,它给出的字符串包含了x的值的显示。

>>> x=3
>>> eval(repr(x))
3
>>> x='hello'
>>> eval(repr(x))
'hello'

所以,再用eval函数调用repr函数后,返回的是对象本身。repr()可以用反引号ˋˋ的方式来替代。