python类中方法__str__()和__repr__()简单粗暴总结
程序员文章站
2022-06-22 10:49:39
在交互式模式下,类中同时实现__str__()和__repr__()方法: 直接输入实例名称显示repr返回的类容; 用print打印实例名称显示str返回的内容; 在交互式模式下,如果只实现了__repr__()方法则: 直接输入实例名称和print打印都显示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