2011-09-07 56 views
2

这是我的脚本:问题与__str__方法

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__方法不返回任何东西。

回答

10

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

3

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