內建函數str()和repr() (representation,表達,表示)或反引號操作符(``)可以方便地以字符串的方式獲取對象的內容、類型、數值屬性等信息。
- str()函數得到的字符串可讀性好(故被print調用)
- repr()函數得到的字符串通常可以用來重新獲得該對象,通常情況下 obj==eval(repr(obj)) 這個等式是成立的。
這兩個函數接受一個對象作為其參數,返回適當的字符串。
事實上repr()和``做一樣的事情,返回一個對象的“官方”字符串表示。其結果絕大多數情況下(不是所有)可以通過求值運算(內建函數eval())重新得到該對象。
str()則不同,它生成一個對象的可讀性好的字符串表示,結果通常無法用eval()求值,但適合print輸出。
如下例:
class D(object):
... def str(self):
... return "a str"
... def repr(self):
... return "a repr"
...
dr = D()
print dr
a str
dr
a repr
"%s" % dr
'a str'
"%r" % dr
'a repr'
'''