2011-04-11 81 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)