मुझे यह समझने में परेशानी हो रही है कि इन दावों में से पहला क्यों ठीक है और दूसरा एक त्रुटि उठाता है।सदस्यता परीक्षण एक सूची और एक सेट के लिए अलग कैसे है?
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
है, और एक अन्य unittest में मुझे लगता है कि 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)
यहाँ त्रुटि है। मैं वास्तव में यह नहीं समझ सकता कि विषय सूची में क्यों है और सेट में नहीं। आदर्श रूप में मैं विषय दोनों में होना चाहता हूं।
धन्यवाद! विषय वर्ग में __hash __() फ़ंक्शन को कार्यान्वित करने से इस समस्या को हल किया गया। – rtclay