2011-04-11 60 views
121

我有這個代碼來計算兩個座標之間的距離。這兩個函數都在同一個類中。類內的Python調用函數

但是,如何在功能isNear中調用功能distToPoint

​​
+19

嘗試:self.distToPoint(p) – momeara 2011-04-11 00:23:20

回答

220

由於這些是成員函數,因此將其稱爲實例上的成員函數self

def isNear(self, p): 
    self.distToPoint(p) 
    ... 
+1

但要小心self.foo()將使用可能解析爲不同類中的函數的方法解析順序。 – 2014-01-17 20:55:50

+0

如果我們不使用自我會發生什麼?並直接調用distToPoint(p)? – 2016-08-16 04:30:49

+0

@Marlon Abeykoon「自我」的說法將會丟失 – 2016-11-27 13:10:15

25

這不起作用,因爲distToPoint是你的類裏面,所以你需要與類名前綴,如果你想引用它,就像這樣:classname.distToPoint(self, p)。不過,你不應該那樣做。更好的方法是直接通過類實例(這是類方法的第一個參數)引用方法,如下所示:self.distToPoint(p)