2011-04-11 68 views
1

我有以下代碼嵌入在一個類中。每當我運行distToPoint它給錯誤'不受支持的操作數類型(s) - :'NoneType'和'浮動''我不知道它爲什麼返回與NoneType和我如何得到減法工作?Python減去花車

自我和p都應該是成對的。

def __init__(self, x, y): 
    self.x = float(x) 
    self.y = float(y) 
def distToPoint(self,p): 
    self.ax = self.x - p.x 
    self.ay = self.y - p.y 
    self.ac = math.sqrt(pow(self.ax,2)+pow(self.ay,2)) 
+1

您的代碼(如給定的)不產生此錯誤。請編輯您的代碼以提供產生錯誤的最簡單示例。 – 2011-04-11 00:48:44

回答

1

爲了比較起見,

import math 

class Point(object): 
    def __init__(self, x, y): 
     self.x = x + 0. 
     self.y = y + 0. 

    def distToPoint(self, p): 
     dx = self.x - p.x 
     dy = self.y - p.y 
     return math.sqrt(dx*dx + dy*dy) 

a = Point(0, 0) 
b = Point(3, 4) 

print a.distToPoint(b) 

返回

5.0 
1

您應該檢查您發送給函數什麼p價值,所以它有一個xy是浮動。

舊後(第二個想法,我不認爲你試圖使用distToPoint這樣):

distToPoint沒有返回值,這可能是問題。