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

posted @ 2017-11-19 15:46  dragonbird  阅读(168)  评论(0编辑  收藏  举报