小编rtc*_*lay的帖子

如何对列表和集合进行成员资格测试?

我无法弄清楚为什么第一个断言是正常的,第二个引发错误.

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)
Run Code Online (Sandbox Code Playgroud)

这是错误:

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>])
Run Code Online (Sandbox Code Playgroud)

Subject类中的相等性测试很简单self.name == other.name,在另一个UnitTest中我验证了Subject("A") == Subject("A").我真的无法弄清楚为什么主题在列表中而不在集合中.理想情况下,我希望这两个主题都存在.

python list set member

8
推荐指数
1
解决办法
1952
查看次数

标签 统计

list ×1

member ×1

python ×1

set ×1