Ответ 1
Поскольку они являются функциями-членами, назовем его как функцию-член в экземпляре self
.
def isNear(self, p):
self.distToPoint(p)
...
У меня есть этот код, который рассчитывает расстояние между двумя координатами. Обе функции находятся в одном классе.
Однако, как я могу вызвать функцию 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)
.
Класс 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
Как вызвать функцию-член внутри класса?