在交互式模式下,類中同時實現__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