python str與repr以及toString()

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章