Fonction d'appel Python dans la classe
, j'ai ce code qui calcule la distance entre deux coordonnées. Les deux fonctions sont toutes deux dans la même classe.
Cependant comment puis-je faire appel à 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)
...
140
demandé sur
Aran-Fey
2011-04-11 04:20:07
2 réponses
Puisque ce sont des fonctions membres, appelez-la en tant que fonction membre sur l'instance, self
.
def isNear(self, p):
self.distToPoint(p)
...
256
répondu
Jeff Mercado
2011-04-11 00:24:42
Cela ne fonctionne pas parce que distToPoint
est dans votre classe, vous devez donc le préfixer avec le nom de classe si vous voulez y faire référence, comme ceci: classname.distToPoint(self, p)
. Vous ne devriez pas le faire comme ça, si. Une meilleure façon de le faire est de se référer à la méthode directement via l'instance de classe (qui est le premier argument d'une méthode de classe), comme ceci: self.distToPoint(p)
.
32
répondu
Aleksi Torhamo
2011-04-11 00:31:52