class Foo:
def __init__(self, foo):
self.foo = foo
def __eq__(self, other):
"""Implements ==."""
return self.foo == other.foo
def __repr__(self):
# if you eval the return value of this function,
# you'll get another Foo instance that's == to self
return "Foo(%r)" % self.foo
它用
repr()
将替换项打印为字符串。它调用对象上的^{} ,并插入结果字符串。
背景:
在Python中,有两个内置函数用于将对象转换为字符串:^{} 与^{} 。
str
应该是一个友好的、可读的字符串。repr
应该包含有关对象内容的详细信息(有时,它们会返回相同的内容,例如整数)。按照惯例,如果有一个Python表达式将eval为另一个对象,即==,repr
将返回这样一个表达式,例如如果返回表达式对对象没有意义,
repr
应该返回一个由<;和&g t;符号包围的字符串,例如<blah>
。回答你原来的问题:
%s
<;->;^{%r
<;->;^{此外:
通过实现^{} 和^{} 方法,可以控制自己类的实例转换为字符串的方式。
相关问题 更多 >
编程相关推荐