class Demo:
def __init__(self):
pass
def __str__(self):
"""
如果没有添加 __str__ 方法,Python 在需要该方法但找不到的时候,它会去调用 __repr__ 方法。
因为 __str__ 的默认实现就是调用 __repr__ 方法
推荐在写自己的类的时候至少添加一个 __repr__ 方法,这能保证类到字符串始终有一个有效的自定义转换方式
:return:
"""
return 'demo __str__'
def __repr__(self):
"""
列表以及字典等容器总是会使用 __repr__ 方法。即使你显式的调用 str 方法
:return:
"""
return 'demo __repr__'
>>> d = Demo()
>>> d
Out[6]: demo __repr__
>>> print(d)
demo __str__
>>> str(d)
Out[10]: 'demo __str__'
>>> str([d])
Out[8]: '[demo __repr__]'
>>> print([d])
[demo __repr__]