python中str和repr_python中str()和repr()函数的区别
Python 有辦法將任意值轉為字符串:將它傳入repr() 或str() 函數。
函數str() 用于將值轉化為適于人閱讀的形式,而repr() 轉化為供解釋器讀取的形式。
對于數值類型、列表類型,str和repr方法的處理是一致;而對于字符串類型,str和repr方法處理方式不一樣。
repr()函數得到的字符串通常可以用來重新獲得該對象,repr()的輸入對python比較友好,適合開發和調試階段使用。通常情況下obj==eval(repr(obj))這個等式是成立的。
而str()函數沒有這個功能,str()函數適合print()輸出
1 >>> obj = 'I love Python'
2 >>> obj==eval(repr(obj))3 True4 >>> obj ==eval(str(obj))5 Traceback (most recent call last):6 File "", line 1, in
7 File "", line 1
8 I love Python9 ^
10 SyntaxError: invalid syntax
repr()函數(python3中):
1 >>> repr([0,1,2,3])2 '[0, 1, 2, 3]'
3 >>> repr('Hello')4 "'Hello'"
5
6 >>> str(1.0/7.0)7 '0.14285714285714285'
8 >>> repr(1.0/7.0)9 '0.14285714285714285'
對比:
1 >>> repr('hello')2 "'hello'"
3 >>> str('hello')4 'hello'
對于一般情況:
1 >>> a=test()2 >>>a3 <__main__.test object at>
4 >>> print(a)5 <__main__.test object at>
6 >>>
不管我們是輸入對象還是print(對象),返回的都是對象的內存地址
對于方法__str__:
1 >>> classtest():2 def __str__(self):3 return "你好"
4
5
6 >>> a=test()7 >>>a8 <__main__.test object at>
9 >>> print(a)10 你好11 >>>
如果我們在終端中輸入對象,會返回對象的內存地址,使用print則會自動調用方法__str__
對于方法__repr__:
1 >>> classtest():2 def __repr__(self):3 return "你好"
4
5 >>> a=test()6 >>>a7 你好8 >>> print(a)9 你好10 >>>
如果我們在終端中輸入對象,使用print都會自動調用方法__repr__
通常,程序員會在開發時,使用__repr__來返回一些關鍵性的信息便于調試。
總結
以上是生活随笔為你收集整理的python中str和repr_python中str()和repr()函数的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zemax迈克尔逊干涉仪_zemax非序
- 下一篇: python计角_最小角python算法