print OBJECT打电话OBJECT.__str__(),然后什么时候OBJECT.__repr__()打电话?我看到,print OBJECT调用OBJECT.__repr__()时OBJECT.__str__()不存在,但我希望这不是调用的唯一途径__repr__().
aar*_*ing 21
repr(obj)
Run Code Online (Sandbox Code Playgroud)
电话
obj.__repr__
Run Code Online (Sandbox Code Playgroud)
其目的__repr__是提供对象的"正式"表示,该表示应该是可以eval创建对象的表达式.那是,
obj == eval(repr(obj))
Run Code Online (Sandbox Code Playgroud)
应该,但并不总是在实践中,屈服True
我在评论中被问到一个何时的例子obj != eval(repr(obj)).
class BrokenRepr(object):
def __repr__(self):
return "not likely"
Run Code Online (Sandbox Code Playgroud)
这是另一个:
>>> con = sqlite3.connect(':memory:')
>>> repr(con)
'<sqlite3.Connection object at 0xb773b520>'
>>>
Run Code Online (Sandbox Code Playgroud)
您不仅__repr__()在使用时调用repr(),而且在以下情况下:
objshell并按enterprint [u'test']不打印['test']| 归档时间: |
|
| 查看次数: |
9857 次 |
| 最近记录: |