日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中__str__和__repr__

發布時間:2025/3/21 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中__str__和__repr__ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.repr() 或 str() 函數

Python 有辦法將任意值轉為字符串:將它傳入repr() 或str() 函數。
函數str() 用于將值轉化為適于人閱讀的形式,而repr() 轉化為供解釋器讀取的形式(str出來的值是給人看的字符串,repr出來的值是給機器看的)

>>> import datetime >>> t1=datetime.datetime.now()>>> print(t1) 2017-08-06 21:49:37.490534 >>> print(str(t1)) 2017-08-06 21:49:37.490534 >>> print(repr(t1)) datetime.datetime(2017, 8, 6, 21, 49, 37, 490534)>>>

再看一個例子

>>> print(str(1000L)) 1000 >>> print(repr(1000L)) 1000L

2.特殊方法__str__和_repr_

引用別人的一個例子 http://blog.csdn.net/luckytanggu/article/details/53649156

class Test(object):def __init__(self, value='hello, world!'):self.data = value>>> t = Test() >>> t <__main__.Test at 0x7fa91c307190> >>> print t <__main__.Test object at 0x7fa91c307190># 看到了么?上面打印類對象并不是很友好,顯示的是對象的內存地址 # 下面我們重構下該類的__repr__以及__str__,看看它們倆有啥區別# 重構__repr__ class TestRepr(Test):def __repr__(self):return 'TestRepr(%s)' % self.data>>> tr = TestRepr() >>> tr TestRepr(hello, world!) >>> print tr TestRepr(hello, world!)# 重構__repr__方法后,不管直接輸出對象還是通過print打印的信息都按我們__repr__方法中定義的格式進行顯示了# 重構__str__ calss TestStr(Test):def __str__(self):return '[Value: %s]' % self.data>>> ts = TestStr() >>> ts <__main__.TestStr at 0x7fa91c314e50> >>> print ts [Value: hello, world!]# 你會發現,直接輸出對象ts時并沒有按我們__str__方法中定義的格式進行輸出,而用print輸出的信息卻改變了

__repr__和__str__這兩個方法都是用于顯示的,__str__是面向用戶的,而__repr__面向程序員。

  • 打印操作會首先嘗試 __str__ 和str內置函數(print運行的內部等價形式),它通常應該返回一個友好的顯示。
  • __repr__用于所有其他的環境中:用于交互模式下提示回應以及repr()函數,如果沒有使用__str__,會使用print()和str()。它通常應該返回一個編碼字符串,可以用來重新創建對象,或者給開發者詳細的顯示。

當我們想所有環境下都統一顯示的話,可以重構__repr__方法;當我們想在不同環境下支持不同的顯示,例如終端用戶顯示使用__str__,而程序員在開發期間則使用底層的__repr__來顯示,實際上__str__只是覆蓋了__repr__以得到更友好的用戶顯示。

總結

以上是生活随笔為你收集整理的Python中__str__和__repr__的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。