我已经定义了foo类和函数foo.__str__()
。如果x是foo的实例,则x.__str__()
返回x的字符串表示形式。我已经在示例中进行了检查,它似乎可以按我的意愿运行。
我的问题是,现在如何定义foo.print()
。我应该使用__str__
还是烦人的重复__str__
的代码?
答案 0 :(得分:3)
否,print
仅调用__str__
,因此您无需执行其他任何操作。您可能还需要定义__repr__
,它返回对象的表示形式
class A:
def __str__(self):
return 'in __str__'
def __repr__(self):
return 'in __repr__'
a = A()
print(a) # __str__
print([a]) # __repr__
看看this post与__str__
对比__repr__