__str__和__repr__
__str__(self)
打印对象时print(obj)
时会触发__str__的执行。
class A:
def __str__(self):
return 'str执行了'
def __repr__(self):
return 'repr执行了'
a = A()
print(a)
str执行了
__repr__(slef)
在命令行中直接输入对象名称即会触发执行。
>>> class A:
... def __str__(self):
... print('str执行了')
... def __repr__(self):
... return 'repr执行了'
...
>>> a = A()
>>> a
repr执行了
__str__和__repr__的返回值有且必须为字符串。如果没有重写__str__,会触发__repr__,再没写,打印出内存地址。