码迷,mamicode.com
首页 > 编程语言 > 详细

python类中方法__str__()和__repr__()简单粗暴总结

时间:2019-08-29 13:54:22      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:交互式   main   def   style   object   直接   对象   输出   obj   

在交互式模式下,类中同时实现__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返回的内容。

>>> 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

 

python类中方法__str__()和__repr__()简单粗暴总结

标签:交互式   main   def   style   object   直接   对象   输出   obj   

原文地址:https://www.cnblogs.com/bryant24/p/11428987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!