the difference __str__ and __repr__
First, let me reiterate the main points in Alex’s post:
- The default implementation is useless (it’s hard to think of one which wouldn’t be, but yeah)
__repr__
goal is to be unambiguous__str__
goal is to be readable- Container’s
__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-python