Я делаю A * поиск и мне нужно хранить информацию в приоритетной очереди.Но я хочу, чтобы приоритетная очередь сравнивала только одно поле моих данных.Поэтому я разработал класс PrioritizedItem
для априорной очереди.Тем не менее, моя программа работает вечно.Я написал некоторый простой тестовый код для воспроизведения этой ошибки:
from dataclasses import dataclass,field
import queue
@dataclass(order=True)
class PrioritizedItem:
hint: float
current: tuple=field(compare=False)
path: list=field(compare= False)
trace=[(0, 0)]
temp=PrioritizedItem(hint=14, current=(0, 0) ,path=trace)
priori_queue = queue.PriorityQueue(temp ) #queue contains current location
priori_queue
После инициализации моя очередь приоритетов prior_queue
по-прежнему пуста.Вручную добавить элемент temp
даже выдает ошибку TypeError («'>» не поддерживается между экземплярами «PrioritizedItem» и «int» »,).Похоже, в моем классе PriortizedItem
отсутствует какая-то часть.Как добавить эту часть?