Python 中 __str__ 和 __repr__ 之間的區別是什麼?
內建函式 repr() 和 str() 分別呼叫 object.__repr__(self) 和 object.__str__(self) 方法。第一個函式計算物件的正式表示,而第二個函式返回物件的非正式表示。
對於整數物件而言,這兩個函式的結果是相同的。
>>> x = 1 >>> repr(x) '1' >>> str(x) '1'
但對於字串物件則不是這樣。
>>> x = "Hello" >>> repr(x) "'Hello'" >>> str(x) 'Hello'
字串物件的 repr() 的返回值可以由 eval() 函式求值並且生成有效的字串物件。但 str() 的結果不能求值。
>>> y1 = repr(x) >>> eval(y1) 'Hello' >>> y2 = str(x) >>> eval(y2) NameError: name 'Hello' is not defined
總結。repr() 返回物件的預設且明確的表示,而 str() 給出非正式的表示形式,可以讀取,但可能並不總是明確的。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP