У меня есть класс, у которого есть поле под названием tour. В этом классе у меня также есть функция, которая удаляет местоположение из тура.
удалить из класса Tour
def remove(self,location, to_print=False):
location.tour_id = None
index_to_delete = None
if to_print:
print("before removee" +str(len(self.tour_locations)))
for i in range(0,len(self.tour_locations)):
if self.tour_locations[i].id_ == location.id_:
index_to_delete = i
if index_to_delete is None:
print("element not found")
return
else:
del self.tour_locations[index_to_delete]
if to_print:
print("after removee" +str(len(self.tour_locations)))
Теперь я вызываю эту функцию откуда-то еще (НЕ В ТУР КЛАССЕ):
apply
def apply(self):
tour_location = self.extra_information['tour_location']
position = self.extra_information['position']
tour= self.extra_information['tour']
origin_tour = self.solution.get_tour_by_id(tour_location.tour_id)
destination_tour = self.solution.get_tour_by_id(tour.id_)
if to_print:
print("origin_tour before " + str(origin_tour))
print("dstination tour before" + str(destination_tour))
origin_tour.remove(tour_location, to_print=to_print)
destination_tour.insert_at(tour_location, position)
if to_print:
print("origin_tour after " + str(origin_tour))
print("dstination tour after" + str(destination_tour))
return self.solution
Строка печати в классе печатает маршрут в соответствии с удалением местоположения.
Строка печати ("after") вФункция apply показывает тур без каких-либо изменений.
Как это происходит?