最好用一个例子来解释。我为“点”对象定义了一个新类:
class point:
def __init__(self, px, py):
self.x = px
self.y = py
self.type = point
def __str__(self):
return "point(" + str(self.x) + ", " + str(self.y) + ")"
现在,当我打印一个点时,一切正常。
In [118]: p = point(2,5)
In [119]: print(p)
point(2, 5)
但是我很懒,我想在输入p时返回__str__方法。目前我得到的是:
In [120]: p
Out[120]: <__main__.point at 0x1e446fffeb8>
而我想要的是
In [120]: p
Out[120]: point(2, 5)
调用这种类型的对象时,有没有办法让__str__默认打印?
答案 0 :(得分:2)
我相信您正在寻找的是__repr__
方法。