我正在做 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("'>' not supported between 'PrioritizedItem' and 'int'",)。看起来我的类型课PriortizedItem
缺少一些东西。如何添加该部分?