函數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.