当您在 Python 中打印一个对象__repr__
并且__str__
不是由用户定义时,Python 会将对象转换为字符串表示形式,并用尖括号分隔...
<bound method Shell.clear of <Shell object at 0x112f6f350>>
问题是在 Web 浏览器中以字符串形式呈现它,这些字符串还包含必须正常呈现的 HTML。浏览器显然被尖括号弄糊涂了。
我正在努力寻找有关这些表示如何形成的任何信息,即使它们有名称。
对于所有没有__repr__
定义方法的对象,是否可以通过重写__repr__
类来改变 Python 将对象表示为字符串的方式object
?
那么,如果 Python 通常会 return "<Foo object at 0x112f6f350>"
,那么什么钩子可以让它返回"{Foo object at {0x112f6f350}}"
,或者其他什么,而不必直接修改Foo
和其他所有类?