我正在进行*搜索,需要在优先级队列中存储信息。但是我希望优先级队列只比较数据的一个字段。所以我为priori queue设计了一个类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(“'priorizedItem”和“int”实例之间不支持“>;”)。看起来我的类型类PriortizedItem
缺少一些部分。如何添加该部分?在
您在} 的唯一参数是
PriorityQueue(temp)
中传递temp
,但是^{maxsize
,它应该是一个整数。默认值是0
,这意味着队列的增长没有大小限制。在相关问题 更多 >
编程相关推荐