나는 __hash__
함수를 사용하여 클래스 정의를 가지고 있습니다.이 함수는 객체 속성을 사용하여 파이썬 세트에서 비교할 고유 키를 만듭니다.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 클래스의 메서드를 사용하여) 두 해시는 이론적으로 가능하지 않아야합니다.
set([1630, 1630])
모든 지침
주시면 감사하겠습니다.