Подтвердить что ты не робот

Функция вызова Python внутри класса

У меня есть этот код, который рассчитывает расстояние между двумя координатами. Обе функции находятся в одном классе.

Однако, как я могу вызвать функцию 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)
        ...
4b9b3361

Ответ 1

Поскольку они являются функциями-членами, назовем его как функцию-член в экземпляре self.

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

Ответ 2

Это не работает, потому что distToPoint находится внутри вашего класса, поэтому вам нужно префикс его с именем класса, если вы хотите обратиться к нему, например: classname.distToPoint(self, p). Однако вы не должны этого делать. Лучший способ сделать это - обратиться к методу непосредственно через экземпляр класса (который является первым аргументом метода класса), например: self.distToPoint(p).

Ответ 3

Класс class: def init (self, data): self.data = data self.nextfield = Нет

Связанный список классов: def init (self): self.head = Нет

def printlist(self):
    temp = self.head
    while(temp):
        print(temp.data)
        temp = temp.nextfield


def reverse (self):
    prev = None
    current = self.head
    next1 = None

    while (current != None):
        next1 = current.nextfield
        current.nextfield = prev
        prev = current
        current = next1

    self.head = prev


def check_palindrome(self):
    temp1 = self.head
    temp2 = self.reverse()


    while(temp1 and temp2):

        if temp1.data == temp2.data:
            temp1 = temp1.nextfield
            temp2 = temp2.nextfield
            return 1
        else:
            return 0

Как вызвать функцию-член внутри класса?