我有一個類定義與__hash__
函數,該函數使用對象屬性創建一個唯一的鍵在python集合中進行比較。Python - 以某種方式獲取重複數據
散列方法是這樣的:
def __hash__(self):
return int('%d%s'%(self.id,self.create_key))
在負責實施這個類,幾個查詢運行可以想象構建這個類的重複的實例模塊,並且在功能創建的隊列負責做這是一個表示爲一組,以確保該受騙者可以省略:
in_set = set()
out_set = set()
for inid in inids:
ps = Perceptron.getwherelinked(inid,self.in_ents)
for p in ps:
in_set.add(p)
for poolid in poolids:
ps = Perceptron.getwherelinked(poolid,self.out_ents)
for p in ps:
out_set.add(p)
return in_set.union(out_set)
(不知道爲什麼縮進來到這裏錯位)
不知何故,儘管調用union
方法,我仍然得到兩個重複的實例。打印出來(在Perceptron類中使用str方法,只調用哈希)兩個哈希是相同的,理論上這是不可能的。
set([1630, 1630])
任何指導,將不勝感激。