First, let me reiterate the main points in Alex’s post:python
__repr__
goal is to be unambiguous__str__
goal is to be readable__str__
uses contained objects’ __repr__
>>> class Foo(object): def __repr__(self): return 'repr' >>> f1=Foo() >>> f1 repr >>> print(f1) repr >>> str(f1) 'repr' >>> repr(f1) 'repr' >>> class Foo2(object): def __str__(self): return 'repr' >>> f2=Foo2() >>> f2 <__main__.Foo2 object at 0x0000000002FF3F98> >>> print(f2) repr >>> str(f2) 'repr' >>> repr(f2) '<__main__.Foo2 object at 0x0000000002FF3F98>'
https://stackoverflow.com/questions/1436703/difference-between-str-and-repr-in-pythonless