python類中方法__str__()和__repr__()簡單粗暴總結

在交互式模式下,類中同時實現__str__()和__repr__()方法:

直接輸入實例名稱顯示repr返回的類容;

用print打印實例名稱顯示str返回的內容;

>>> class Test:
...     def __repr__(self):
...         return 'Test -> return repr'
...     def __str__(self):
...         return 'Test -> return str'
...     
>>> t = Test()
>>> t
Test -> return repr
>>> print(t)
Test -> return str

在交互式模式下,如果只實現了__repr__()方法則:

直接輸入實例名稱和print打印都顯示repr返回的內容。

>>> class Test:
...     def __repr__(self):
...         return 'Test -> return repr'
... 
>>> t = Test()
>>> t
Test -> return repr
>>> print(t)
Test -> return repr

在交互式模式下,如果只實現了__str__()方法則:

直接輸入實例名稱返回的是對象地址信息。

而print打印輸出的是str返回的內容。

在學習過程中有什麼不懂得可以加
我的python學習交流扣扣qun,688244617
羣裏有不錯的學習教程、開發工具與電子書籍。
與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容。

>>> class Test:
...      def __str__(self):
...          return 'Test -> return str'
...  
>>> t = Test()
>>> t
<__main__.Test object at 0x00000234355D43C8>
>>> print(t)
Test -> return str

總結:

一般情況下,讓repr成爲str的一個別名輸出相同的內容就可以了。

>>> class Test:
...     def __str__(self):
...         return 'Test -> return str'
...     __repr__ = __str__
...     
>>> t = Test()
>>> t
Test -> return str
>>> print(t)
Test -> return str
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章