2つの座標間の距離を計算するこのコードがあります。 2つの関数はどちらも同じクラス内にあります。
しかし、関数distToPoint
の中で関数isNear
を呼び出す方法は?
class Coordinates:
def distToPoint(self, p):
"""
Use pythagoras to find distance
(a^2 = b^2 + c^2)
"""
...
def isNear(self, p):
distToPoint(self, p)
...
これらはメンバー関数なので、インスタンスself
のメンバー関数として呼び出します。
def isNear(self, p):
self.distToPoint(p)
...
distToPoint
はあなたのクラスの中にあるのでそれはうまくいきません、それであなたがそれを参照したいならば、あなたはそれをクラス名で接頭辞をつける必要があります:classname.distToPoint(self, p)
。あなたはそうするべきではありません、しかし。それを行うより良い方法は、self.distToPoint(p)
のように、クラスインスタンスを通して直接メソッドを参照することです(これはクラスメソッドの最初の引数です)。