使对象在调用时返回其字符串

时间:2016-07-04 06:22:29

标签: python

最好用一个例子来解释。我为“点”对象定义了一个新类:

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__默认打印?

1 个答案:

答案 0 :(得分:2)

我相信您正在寻找的是__repr__方法。