python类中方法__str__()和__repr__()简单粗暴总结
Posted bryant24
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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返回的内容。
>>> 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__()简单粗暴总结的主要内容,如果未能解决你的问题,请参考以下文章