python中的repr和str有什么區(qū)別?
函數(shù)str() 用于將值轉(zhuǎn)化為適于人閱讀的形式,而repr() 轉(zhuǎn)化為供解釋器讀取的形式
內(nèi)建函數(shù)str()和repr() (representation,表達(dá),表示)或反引號操作符(``)可以方便地以字符串的方式獲取對象的內(nèi)容、類型、數(shù)值屬性等信息。
str()函數(shù)得到的字符串可讀性好(故被print調(diào)用)
repr()函數(shù)得到的字符串通常可以用來重新獲得該對象,通常情況下 obj==eval(repr(obj)) 這個等式是成立的。這兩個函數(shù)接受一個對象作為其參數(shù),返回適當(dāng)?shù)淖址?/p>
事實(shí)上repr()和``做一樣的事情,返回一個對象的“官方”字符串表示。其結(jié)果絕大多數(shù)情況下(不是所有)可以通過求值運(yùn)算(內(nèi)建函數(shù)eval())重新得到該對象。
str()則不同,它生成一個對象的可讀性好的字符串表示,結(jié)果通常無法用eval()求值,但適合print輸出。