J'ai ce code qui calcule la distance entre deux coordonnées. Les deux fonctions appartiennent à la même classe.
Cependant, comment appeler la fonction distToPoint
dans la fonction 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)
...
S'agissant de fonctions membres, appelez-la en tant que fonction membre sur l'instance, self
.
def isNear(self, p):
self.distToPoint(p)
...
Cela ne fonctionne pas parce que distToPoint
est dans votre classe, vous devez donc le préfixer avec le nom de la classe si vous voulez vous y référer, comme ceci: classname.distToPoint(self, p)
. Vous ne devriez pas le faire comme ça, cependant. Une meilleure façon de le faire est de faire référence à la méthode directement via l'instance de la classe (qui est le premier argument d'une méthode de classe), comme suit: self.distToPoint(p)
.