當列印乙個類的例項時,返回的字串是物件的位址資訊,如<__main__.student object at 0x109afb310>,很不好看
可通過在類內定義__str__(),這樣列印例項時就會返回乙個好看的字串,而且容易看出例項內部重要的資料
定義__str__()
classstudent(object):
def__init__
(self, name):
self.name =name
def__str__
(self):
return
'student object (name: %s)
' %self.name
print(student('
michael
')) #
輸出:student object (name: michael)
定義__repr__()
s = student('michael')
s
#輸出:<__main__.student object at 0x109afb310>,列印出來的例項還是不好看
因為直接顯示例項變數時,它呼叫的不是__str__(),而是__repr__()
__str__()和__repr__()區別
__str__():返回使用者看到的字串
__repr__():返回程式開發者看到的字串,即__repr__()是為除錯服務的
解決辦法是再定義乙個__repr__(),但是通常__str__()和__repr__()**都是一樣的
所以,有個偷懶的寫法,就是直接將__str__ 賦給__repr__
classstudent(object):
def__init__
(self, name):
self.name =name
def__str__
(self):
return
'student object (name=%s)
' %self.name
__repr__ = __str__
s = student('
michael')
s
#輸出:student object (name: michael)
Python內建函式str 和repr
內建函式str 和repr representation,表達,表示 或反引號操作符 可以方便地以字串的方式獲取物件的內容 型別 數值屬性等資訊。str 函式得到的字串可讀性好 故被print呼叫 repr 函式得到的字串通常可以用來重新獲得該物件,通常情況下 obj eval repr obj 這...
PYTHON中 str 函式和 repr
自學python中,學習中總結的經驗部落格,如有錯誤,還請諒解 python中定義乙個類時,常用 str 以及 repr 函式輸出這個類的具體描述,但這兩個函式具體又有些什麼區別呢?一句話總結的話 repr 比 str 的使用要求更加嚴格,優先順序更低。優先順序比較 class my func ob...
python之repr 和str 的區別
repr repr object 返回乙個可以用來表示物件的可列印字串 首先,嘗試生成這樣乙個字串,將其傳給 eval 可重新生成同樣的物件 否則,生成用尖括號包住的字串,包含型別名和額外的資訊 比如位址 乙個類 class 可以通過 repr 成員來控制repr 函式作用在其實例上時的行為。str...