我正在做 A* 搜索,需要将信息存储在优先级队列中。但我希望优先级队列只比较我的数据的一个字段。所以我PrioritizedItem为先验队列设计了一个类。但是,我的程序一直在运行。我写了一些简单的测试代码来重现这个错误:from dataclasses import dataclass,fieldimport 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 locationpriori_queue初始化后,我的优先级队列prior_queue还是空的。手动添加元素temp甚至会给我一个错误 TypeError("'>' not supported between 'PrioritizedItem' and 'int'",)。看起来我的类型类PriortizedItem缺少一些东西。如何添加那部分?
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
你传递temp的PriorityQueue(temp),但唯一的说法PriorityQueue是maxsize,这应该是一个整数。默认为0,这意味着队列在没有大小限制的情况下增长。
priori_queue = queue.PriorityQueue()
priori_queue.put(temp)
添加回答
举报
0/150
提交
取消