나는 왜이 단언의 첫번째 것이 OK이고 두번째 단 하나는 과실을 제기하는지 파악에 말썽이있다.목록과 집합에 대한 회원 테스트의 차이점은 무엇입니까?
Traceback (most recent call last):
File "C:\Users\...\testSubject.py", line 34, in testIn
self.assertIn(Subject("A"), subject_set)
AssertionError: <Subject: A> not found in set([<Subject: B>, <Subject: C>, <Subject: A>])
제목 클래스의 평등에 대한 시험은 단순히 self.name == other.name
이며, 다른 유닛 테스트에서 내가 그 Subject("A") == Subject("A")
을 확인 : 여기
subject_list = [Subject("A"), Subject("B"), Subject("C")]
subject_set = set()
subject_set.add(Subject("A"))
subject_set.add(Subject("B"))
subject_set.add(Subject("C"))
self.assertIn(Subject("A"), subject_list)
self.assertIn(Subject("A"), subject_set)
는 오류입니다. 주제가 목록에있는 이유는 무엇인지 알 수 없습니다. 이상적으로 나는 그 주제가 둘 다에 있기를 바란다.
고마워요! Subject 클래스에서 __hash __() 함수를 구현하면이 문제가 해결됩니다. – rtclay