为了账号安全,请及时绑定邮箱和手机立即绑定

具有自定义类型类的优先级队列得到 TypeError

具有自定义类型类的优先级队列得到 TypeError

胡子哥哥 2021-11-02 10:18:22
我正在做 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)


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信