__repr__和__str__使用

內建函數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'
'''

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最近項目當中要用python來實現一些功能,于是就抓緊時間學習了一下python,順便將學習過程當中的一些知識點記...
    橘座大人閱讀 674評論 0 1
  • 第三章 EVAL標記法 3.1 導引 在進一步深入學習Lisp之前,我們必須切換到一個更加適合的標記法,EVAL標...
    geoeee閱讀 2,429評論 0 5
  • 年輕的小姑娘喲,你掉的是這個金姐妹呢,還是這個銀姐妹呢,還是這個鐵姐妹呢? 文丨一醉貓 -1- 一陣敲打聲將我從沉...
    醉貓知改改閱讀 864評論 19 8
  • 想擇一處山水間定所。 白日里,炊煙伴酒,山林放歌。 遲暮時,江燈照影,燭息書合。 袖口乘不進二兩風,眼底望不及半輪...
    小熊秋秋閱讀 956評論 1 0
  • 2017-01-15 小人缺錢,君子缺德。君子能看到自己缺德,缺得厲害,缺得著急,所以時時刻刻要克己復禮,修德篤行...
    郁萍閱讀 4,261評論 1 1