python中str和repr_python中str()和repr()函数的区别
Python 有辦法將任意值轉(zhuǎn)為字符串:將它傳入repr() 或str() 函數(shù)。
函數(shù)str() 用于將值轉(zhuǎn)化為適于人閱讀的形式,而repr() 轉(zhuǎn)化為供解釋器讀取的形式。
對于數(shù)值類型、列表類型,str和repr方法的處理是一致;而對于字符串類型,str和repr方法處理方式不一樣。
repr()函數(shù)得到的字符串通常可以用來重新獲得該對象,repr()的輸入對python比較友好,適合開發(fā)和調(diào)試階段使用。通常情況下obj==eval(repr(obj))這個(gè)等式是成立的。
而str()函數(shù)沒有這個(gè)功能,str()函數(shù)適合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()函數(shù)(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(對象),返回的都是對象的內(nèi)存地址
對于方法__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 >>>
如果我們在終端中輸入對象,會(huì)返回對象的內(nèi)存地址,使用print則會(huì)自動(dòng)調(diào)用方法__str__
對于方法__repr__:
1 >>> classtest():2 def __repr__(self):3 return "你好"
4
5 >>> a=test()6 >>>a7 你好8 >>> print(a)9 你好10 >>>
如果我們在終端中輸入對象,使用print都會(huì)自動(dòng)調(diào)用方法__repr__
通常,程序員會(huì)在開發(fā)時(shí),使用__repr__來返回一些關(guān)鍵性的信息便于調(diào)試。
總結(jié)
以上是生活随笔為你收集整理的python中str和repr_python中str()和repr()函数的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zemax迈克尔逊干涉仪_zemax非序
- 下一篇: python计角_最小角python算法