我正在做 A* 搜索,需要將信息存儲(chǔ)在優(yōu)先級(jí)隊(duì)列中。但我希望優(yōu)先級(jí)隊(duì)列只比較我的數(shù)據(jù)的一個(gè)字段。所以我PrioritizedItem為先驗(yàn)隊(duì)列設(shè)計(jì)了一個(gè)類。但是,我的程序一直在運(yùn)行。我寫了一些簡(jiǎn)單的測(cè)試代碼來重現(xiàn)這個(gè)錯(cuò)誤: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初始化后,我的優(yōu)先級(jí)隊(duì)列prior_queue還是空的。手動(dòng)添加元素temp甚至?xí)o我一個(gè)錯(cuò)誤 TypeError("'>' not supported between 'PrioritizedItem' and 'int'",)??雌饋砦业念愋皖怭riortizedItem缺少一些東西。如何添加那部分?
1 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
你傳遞temp的PriorityQueue(temp),但唯一的說法PriorityQueue是maxsize,這應(yīng)該是一個(gè)整數(shù)。默認(rèn)為0,這意味著隊(duì)列在沒有大小限制的情況下增長(zhǎng)。
priori_queue = queue.PriorityQueue()
priori_queue.put(temp)
添加回答
舉報(bào)
0/150
提交
取消