__str__方法有问题

时间:2011-09-07 21:35:31

标签: python

这是我的剧本:

import math
class Vector:
    def __init__(self, x=0.0, y=0.0):
        self.x = x
        self.y = y

    def ___str___(self):
        return "{0}, {1}".format(self.x, self.y)

    @classmethod
    def vectorPoints(cls, p1, p2):
        a = p2[0] - p1[0]
        b = p2[1] - p1[1]
        return Vector(a, b)

A = (1,5)
B = (2,7)
vectAB = Vector.vectorPoints(A, B)
print(vectAB)
vect = Vector(1, 0)
print(vect)

当我运行此脚本时,我得到:

<__main__.Vector object at 0x00FD5ED0>
<__main__.Vector object at 0x00FD5FF0>

显然__str__方法没有返回任何内容。

2 个答案:

答案 0 :(得分:10)

方法名称应为__str__(周围有2个下划线),而不是___str___(周围有3个下划线)。

答案 1 :(得分:3)

您使用三个下划线(_)而不是正常的两个。