2011-09-07 62 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

您正在使用三個下劃線(_)而不是正常的兩個。