python裏頭要轉成字符串的方式,很多。比較常用的是str和repr。
今天之前,筆者一直認爲python沒有類似於 java對象中的tostring()方法。但是發現原來toString()方法是部分的類的實例纔有。
比如:
那麼python裏頭我們能不能自己實現類似於 java對象中的tostring()方法呢?答案是肯定的。
1、知識點學習
str函數與print函數會調用對象的 __str__函數
repr函數與交互式解釋器會調用對象的 __repr__函數
如果__str__函數沒有被定義,那麼就會使用__repr__來代替輸出.
__str__與__repr__函數的返回值必須是字符串,否則會跑出異常
2、實現
class Foo:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return ("姓名:%s 年齡%s"%(self.name, self.age))
f = Foo('張飛','22')
print(f) # 相當於調用了 str(f),又相當於調用了類 __str()__方法
class Foo:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return ("str 姓名:%s 年齡%s"%(self.name, self.age))
def __repr__(self):
return ("repr 姓名:%s 年齡%s" % (self.name, self.age))
f = Foo('張飛','22')
print(f) # 相當於調用了 str(f),又相當於調用了類 __str()__方法
pycharm中輸出結果爲: str 姓名:張飛 年齡22