關於python的str()和repr()函數

筆者學習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()可以用反引號ˋˋ的方式來替代。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章