python 3.6 __str__如何影响print()

时间:2019-01-06 17:29:03

标签: python-3.x string printing

我已经定义了foo类和函数foo.__str__()。如果x是foo的实例,则x.__str__()返回x的字符串表示形式。我已经在示例中进行了检查,它似乎可以按我的意愿运行。

我的问题是,现在如何定义foo.print()。我应该使用__str__还是烦人的重复__str__的代码?

1 个答案:

答案 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__

输出

enter image description here

看看this post__str__对比__repr__