我有一个没有str
或repr
方法的类。当我称呼它时:
>>> from ingest.tpr import TPR
>>> t=TPR()
>>> t # that is, "repr(t)"
<ingest.tpr.TPR instance at 0x101eb8518>
此处的默认表示形式类似于:
"<${path_to_class} instance at ${memory_address}>"
在哪里提供此默认实现?以上是__repr__
方法或__str__
方法-我知道它在上面称为__repr__
方法,但同时是__str__
和{{1} }方法在一开始就初始化为同一事物,或者只是简单地将另一个称为“后备”。换句话说,默认的__repr__
和__str__
在python中是什么样子?在哪里定义?
答案 0 :(得分:2)
t.__repr__
(repr(t)
的调用)解析为(假设没有其他上游定义)object.__repr__
,它由Python实现定义(例如,https://github.com/python/cpython/blob/master/Objects/typeobject.c#L3827 )