2016-04-28 4 views
-1

Я пытаюсь вызвать метод из предыдущего класса для класса, над которым я сейчас работаю. Это мошенническая система GPS, использующая классы для разных вещей. Класс Я пытаюсь получить метод из выглядит следующим образом:Метод вызова из предыдущего класса

class GPS_POI: 
    def __init__(self, location, name , kind): 
     self.location= location 
     self.name = str(name) 
     self.kind = str(kind) 

    def __str__ (self): 
     return (str(self.location) + ": "+ self.name +", " + self.kind) 

текущий класс и метод, который я сейчас работаю:

class GPS : 
    def __init__ (self, current, map = None): 
     self.current = current 
     self.map= map 
     self.route= [] 

    def display_map(self): 

     for i in self.route: 
      display= GPS_POI() 
      return (display.__str__ + "\n") 

Когда я бегу, я просто в конечном итоге получить результат "Нет", когда выход я хочу (пример) будет:

"(3,1): Kmart, одежда \ п (2,3): бургер Кинг, еда \ п" и т.д.

Должен ли я включить свой параметр self.map из cl GPS в функцию display_map, чтобы она работала правильно? Что я не понимаю о вызове метода из предыдущего класса?

ответ

1

Вы не звоните display.__str__; вы просто ссылаетесь на него. Вы все равно не должны называть __str__. Его цель состоит в том, чтобы обеспечить крюк для того, когда вы пытаетесь рассматривать объект в виде строки, например, при прохождении его str в качестве аргумента:

return str(display) + "\n" 
+0

ой хорошо, это имеет смысл. Я заменяю то, что у меня в моем коде, чтобы вернуть str (display) + "\ n", и я все равно получаю вывод «None». Любые мысли о том, почему это может быть в моем случае? – Nick

Смежные вопросы