python的repr
『壹』 python str()與repr()區別
The str() function is meant to return representations of values which are fairly
human-readable, while repr() is meant to generate representations which can be read by
the interpreter (or will force a SyntaxError if there is not equivalent syntax).
str是給人看的,repr是給編譯器看的,同時eval(repr(obj))還可專以得屬到obj。
『貳』 Python里str函數和repr函數有什麼區別
這個簡單
str是顯示給用戶用的
repr是給機器用的。
class A(object):
def __str__(self):
print "this is A class"
def __repr__(self):
print "this is repr func"
a = A()
比如print a
調用的是a的__str__方法
而如果你在python解釋器里直接敲a後回車,調用的是a.__repr__()方法
『叄』 python str和repr的區別
str與repr區別:
1、python中str函數通常把對象轉換成字元串,即生成對象的可讀性好的字元串,一般在輸出文本時使用,或者用於合成字元串。str的輸出對用戶比較友好適合print輸出。
2、pyton中repr函數將一個對象轉成類似源代碼的字元串,只用於顯示。repr的輸出對python友好,適合eval函數得到原來的對象。
3、在類中實現__str__和__repr__方法,就可以得到不同的返回,示例代碼:
>>>classtest(object):
def__repr__(self):
return"returntestrepr()string."
def__str__(self):
return"returnteststr()string."
>>>print(str(test()))
returnteststr()string.
>>>print(repr(test()))
returntestrepr()string.
『肆』 Python中,已知一個對象的repr的值,怎麼能反向推出那個對象
Python的特色簡單 Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格!Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。 易學 就如同你即將看到的一樣,Python極其容易上手。前面已經提到了,Python有極其簡單的語法。 免費、開源 Python是FLOSS(自由/開放源碼軟體)之一。簡單地說,你可以自由地發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。FLOSS是基於一個團體分享知識的概念。這是為什麼Python如此優秀的原因之一——它是由一群希望看到一個更加優秀的Python的人創造並經常改進著的。 高層語言 當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節。 可移植性 由於它的開源本質,Python已經被移植在許多平台上(經過改動使它能夠工作在不同平台上)。如果你小心地避免使用依賴於系統的特性,那麼你的所有Python程序無需修改就可以在下述任何平台上面運行。 這些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至還有PocketPC! 解釋性 這一點需要一些解釋。 一個用編譯性語言比如C或C++寫的程序可以從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程通過編譯器和不同的標記、選項完成。當你運行你的程序的時候,連接/轉載器軟體把你的程序從硬碟復制到內存中並且運行。 而Python語言寫的程序不需要編譯成二進制代碼。你可以直接從源代碼 運行 程序。在計算機內部,Python解釋器把源代碼轉換成稱為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言並運行。事實上,由於你不再需要擔心如何編譯程序,如何確保連接轉載正確的庫等等,所有這一切使得使用Python更加簡單。由於你只需要把你的Python程序拷貝到另外一台計算機上,它就可以工作了,這也使得你的Python程序更加易於移植。 面向對象 Python即支持面向過程的編程也支持面向對象的編程。在 面向過程 的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在 面向對象 的語言中,程序是由數據和功能組合而成的對象構建起來的。與其他主要的語言如C++和Java相比,Python以一種非常強大又簡單的方式實現面向對象編程。 可擴展性 如果你需要你的一段關鍵代碼運行得更快或者希望某些演算法不公開,你可以把你的部分程序用C或C++編寫,然後在你的Python程序中使用它們。 可嵌入性 你可以把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。 豐富的庫 Python標准庫確實很龐大。它可以幫助你處理各種工作,包括正則表達式、文檔生成、單元測試、線程、資料庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其他與系統有關的操作。記住,只要安裝了Python,所有這些功能都是可用的。這被稱作Python的「功能齊全」理念。 除了標准庫以外,還有許多其他高質量的庫,如wxPython、Twisted和Python圖像庫等等。
『伍』 python repr和str有什麼區別
函數str() 用於將值轉化為適於人閱讀的形式,而repr() 轉化為供解釋器讀取的形式
內建函數str()和版repr() (representation,表達,表示)或反引號操作符(`權`)可以方便地以字元串的方式獲取對象的內容、類型、數值屬性等信息。
str()函數得到的字元串可讀性好(故被print調用)
repr()函數得到的字元串通常可以用來重新獲得該對象,通常情況下 obj==eval(repr(obj)) 這個等式是成立的。這兩個函數接受一個對象作為其參數,返回適當的字元串。
事實上repr()和``做一樣的事情,返回一個對象的「官方」字元串表示。其結果絕大多數情況下(不是所有)可以通過求值運算(內建函數eval())重新得到該對象。
str()則不同,它生成一個對象的可讀性好的字元串表示,結果通常無法用eval()求值,但適合print輸出。
『陸』 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 = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'
>>> print s
The value of x is 32.5, and y is 40000...
>>> # The repr() of a string adds string quotes and backslashes:
... hello = 'hello, world\n'
>>> hellos = repr(hello)
>>> print hellos
'hello, world\n'
>>> # The argument to repr() may be any Python object:
... repr((x, y, ('spam', 'eggs')))
"(32.5, 40000, ('spam', 'eggs'))"
『柒』 python __repr__的作用
1,嘗試生成這樣一個字元串,將其傳給 eval可重新生成同樣的對象 。
2,否則,生成用尖括弧包住專的字元串,包含類屬型名和額外的信息。
『捌』 菜鳥求大大們解釋Python里str函數和repr函數的區別
1、說明:
函數str()用於將值轉化為適於人閱讀的形式,而repr() 轉化為供解釋器讀取的形式。這是從python官方手冊翻譯的手冊內容。
2、示例:
代碼
import datetime
now = datetime.datetime.now()
print(str(now))
print(repr(now))
print(eval(repr(now)))
程序輸出:
2016-06-09 10:41:07.388009
datetime.datetime(2016, 6, 9, 10, 41, 7, 388009)
2016-06-09 10:41:07.388009
代碼說明:
1)datetime為內置模塊,import載入模塊。
2)now = datetime.datetime.now() 系統當前時間賦值給time變數。
3)這里就可以看出str和repr輸出有區別了。
4)eval函數是把參數當作代碼執行,驗證repr之後的字元串可被python識別並執行。
3、官方文檔:
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
使用給定對象的新字元串對象。如果編碼或錯誤是指定的,那麼對象必須公開數據緩沖區將使用給定的編碼和錯誤處理程序進行解碼。否則,返回的對象私有函數__str()__的結果。
repr(obj, /)
返回對象的規范的字元串表示。對於許多對象類型,包括大多數內建,eval(repr(obj)) == obj.
『玖』 在python中int、str、repr分別是什麼函數類順便問下:類是什麼請大神指教。
int、str 都是類
repr是函數。
仔細的講,內容還是比較多,函數和類在培訓班可以講一兩節課的。
通俗的講:
函數就是若干腳本語句的集合,執行這個函數,就執行了這些語句。
類就是多個函數的集合。
實際操作就還需要很多的概念支持,比如實例化對象、參數傳遞、變數作用域、可變不可變變數操作、返回值,等等等等。
『拾』 python中的repr函數。下面函數為什麼錯啊
語法錯誤?我試了,好著,你的編程環境是什麼?