笔者学习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()可以用反引号ˋˋ的方式来替代。