回覆列表
-
1 # 使用者3408118601757475
-
2 # 使用者3654410448417262
這個簡單
str是顯示給使用者用的
repr是給機器用的。
classa(object):
def__str__(self):
print"thisisaclass"
def__repr__(self):
print"thisisreprfunc"
a=a()
比如printa
呼叫的是a的__str__方法
而如果你在python直譯器裡直接敲a後回車,呼叫的是a.__repr__()方法
-
3 #
1、python中str函式通常把物件轉換成字串,即生成物件的可讀性好的字串,一般在輸出文字時使用,或者用於合成字串。str的輸出對使用者比較友好適合print輸出。
2、pyton中repr函式將一個物件轉成類似原始碼的字串,只用於顯示。repr的輸出對python友好,適合eval函式得到原來的物件。
3、在類中實現__str__和__repr__方法,就可以得到不同的返回,示例程式碼:
這個函式,對應repr(object)這個功能。意思是當需要顯示一個物件在螢幕上時,將這個物件的屬性或者是方法整理成一個可以列印輸出的格式。這個功能與eval也可以對應。打印出的結果直接放到eval裡,通常可以獲得原來的物件。比如t1=datetime.datetime.now()print repr(t1)結果是datetime.datetime(2014, 9, 9, 6, 34, 29, 756000)與此相類似的功能是__str__比如你有一個People類,當列印時你只希望它打印出人名,那麼你可以在__str__函式裡寫上return self.name , 這樣當需要People當作一個字串時,返回的就是人名。你使用 print str(t1)時結果是2014-09-09 06:34:29.756000