wake-up-neo.com

Python Funktion innerhalb der Klasse aufrufen

Ich habe diesen Code, der den Abstand zwischen zwei Koordinaten berechnet. Die beiden Funktionen befinden sich beide in derselben Klasse.

Wie aber rufe ich die Funktion distToPoint in der Funktion isNear auf?

class Coordinates:
    def distToPoint(self, p):
        """
        Use pythagoras to find distance
        (a^2 = b^2 + c^2)
        """
        ...

    def isNear(self, p):
        distToPoint(self, p)
        ...
187
Steven

Da es sich um Memberfunktionen handelt, rufen Sie diese als Memberfunktion für die Instanz self auf.

def isNear(self, p):
    self.distToPoint(p)
    ...
325
Jeff Mercado

Das funktioniert nicht, weil distToPoint in Ihrer Klasse enthalten ist. Sie müssen ihm also den Klassennamen voranstellen, wenn Sie darauf verweisen möchten, wie folgt: classname.distToPoint(self, p). Du solltest es aber nicht so machen. Besser ist es, direkt über die Klasseninstanz (das erste Argument einer Klassenmethode) auf die Methode zu verweisen: self.distToPoint(p).

37
Aleksi Torhamo