第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何為需要比較相同類的自定義對象定義 __eq__ func

如何為需要比較相同類的自定義對象定義 __eq__ func

侃侃爾雅 2021-07-26 16:19:21
我想__eq__()為自定義類實現(xiàn)一個方法Vertex。然而,當我仔細思考這個問題時,我發(fā)現(xiàn)它很奇怪。例如class Vertex():    def __init__(self,node):        self.id = node        self.adjacent = {}但是對于相鄰的dict,它存儲這樣的數(shù)據(jù): {neighbour_vertex1 : edge, neighbour_vertex2 : edge, ....}如果我想實現(xiàn)該__eq__()方法,它應該如下所示:def __eq__(self,other):    return self.id == other and self.adjacent == other.adjacent但self.adjacent == other.adjacent需要比較字典 {neighbour_vertex1 : edge, neighbour_vertex2 : edge, ....} {neighbour_vertex1 : edge, neighbour_vertex2 : edge, ....}為了比較它們,我必須定義neighbout_vertex確實是 class 實例的比較函數(shù)Vertex。我認為這就像一個先有雞還是先有蛋的問題,任何建議都值得贊賞。
查看完整描述

2 回答

?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

建議只比較id屬性。這可能是最好的解決方案,如果可能的話,你絕對應該這樣做。

如果不是,你的頂點的結構是什么?它就像一棵樹,鄰接只走一條路嗎?然后這樣寫就可以了;最終你會用完節(jié)點。

如果頂點可以環(huán)回,我們將不得不做一些更復雜的事情?;炯记墒蔷S護一堆你沒有訪問過的頂點,以及一個你已經(jīng)比較過的節(jié)點列表。對于每個循環(huán),從堆棧中彈出頂部元素。如果你看到任何會使元素比較為假的東西,你可以返回。否則,如果您之前沒有訪問過它們,請將相鄰節(jié)點放在堆棧上,更新訪問過的節(jié)點,然后繼續(xù)。


查看完整回答
反對 回復 2021-08-03
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號