網站地圖 | RSS訂閱 老鐵博客 - 上海SEO優化|上海網站建設|蜘蛛池出租|站群代搭建
你的位置:首頁 ? 前端腳本 ? 正文

repr,python中的repr

2020-7-14 13:49:21 | 作者:老鐵SEO | 0個評論 | 人瀏覽

  這個函數,對應repr(object)這個功能。意思是當需要顯示一個對象在屏幕上時,將這個對象的屬性或者是方法整理成一個可以打印輸出的格式。


  這個功能與eval也可以對應。打印出的結果直接放到eval里,通常可以獲得原來的對象。


  比如t1=datetime.datetime.now()


  printrepr(t1)


  結果是


  datetime.datetime(2014,9,9,6,34,29,756000)


  與此相類似的功能是__str__


  比如你有一個People類,當打印時你只希望它打印出人名,那么你可以在__str__函數里寫上returnself.name,這樣當需要People當作一個字符串時,返回的就是人名。


  你使用printstr(t1)時結果是


  2014-09-0906:34:29.756000


  pythonstr和repr的區別


  str與repr區別:


  1、python中str函數通常把對象轉換成字符串,即生成對象的可讀性好的字符串,一般在輸出文本時使用,或者用于合成字符串。str的輸出對用戶比較友好適合print輸出。


  2、pyton中repr函數將一個對象轉成類似源代碼的字符串,只用于顯示。repr的輸出對python友好,適合eval函數得到原來的對象。


  3、在類中實現__str__和__repr__方法,就可以得到不同的返回,示例代碼:


  >>>?class?test(object):


  ????def?__repr__(self):


  ????????return?"return?test?repr()?string."


  ????def?__str__(self):


  ????????return?"return?test?str()?string."


  >>>?print(str(test()))


  return?test?str()?string.


  >>>?print(repr(test()))


  return?test?repr()?string.


  Python中str和repr的區別


  盡管str(),repr()和``運算在特性和功能方面都非常相似,事實上repr()和``做的是完全一樣的事情,它們返回的是一個對象的“官方”字符串表示,也就是說絕大多數情況下可以通過求值運算(使用內建函數eval())重新得到該對象。


  但str()則有所不同,str()致力于生成一個對象的可讀性好的字符串表示,它的返回結果通常無法用于eval()求值,但很適合用于print語句輸出。需要再次提醒的是,并不是所有repr()返回的字符串都能夠用eval()內建函數得到原來的對象。也就是說repr()輸出對Python比較友好,而str()的輸出對用戶比較友好。


  雖然如此,很多情況下這三者的輸出仍然都是完全一樣的。大家可以看下下面的代碼,來進行對比


  >>>s='Hello,world.'


  >>>str(s)


  'Hello,world.'


  >>>repr(s)


  "'Hello,world.'"


  >>>str(0.1)


  '0.1'


  >>>repr(0.1)


  '0.10000000000000001'


  >>>x=10*3.25


  >>>y=200*200


  >>>s='Thevalueofxis'+repr(x)+',andyis'+repr(y)+'...'


  >>>prints


  Thevalueofxis32.5,andyis40000...


  >>>#Therepr()ofastringaddsstringquotesandbackslashes:


  ...hello='hello,world\n'


  >>>hellos=repr(hello)


  >>>printhellos


  'hello,world\n'


  >>>#Theargumenttorepr()maybeanyPythonobject:


  ...repr((x,y,('spam','eggs')))


  "(32.5,40000,('spam','eggs'))"


  python中的repr和str有什么區別


  函數str()用于將值轉化為適于人閱讀的形式,而repr()轉化為供解釋器讀取的形式


  內建函數str()和repr()(representation,表達,表示)或反引號操作符(``)可以方便地以字符串的方式獲取對象的內容、類型、數值屬性等信息。


  str()函數得到的字符串可讀性好(故被print調用)


  repr()函數得到的字符串通常可以用來重新獲得該對象,通常情況下obj==eval(repr(obj))這個等式是成立的。這兩個函數接受一個對象作為其參數,返回適當的字符串。


  事實上repr()和``做一樣的事情,返回一個對象的“官方”字符串表示。其結果絕大多數情況下(不是所有)可以通過求值運算(內建函數eval())重新得到該對象。


  str()則不同,它生成一個對象的可讀性好的字符串表示,結果通常無法用eval()求值,但適合print輸出。

  • 本文來自: 老鐵博客,轉載請保留出處!歡迎發表您的評論
  • 相關標簽:
  • 已有0位網友發表了一針見血的評論,你還等什么?

    必填

    選填

    記住我,下次回復時不用重新輸入個人信息

    必填,不填不讓過哦,嘻嘻。

    ◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。

    相關推薦

    色情激情片日本大全