我有一个课程,主要表现为一组ID,但不完全。想一想:
class PoundIds(object):
....
@property
def cats(self):
return self.cats
@property
def dogs(self):
return self.dogs
@property
def animal_ids(self):
return set(dog.id for dog in self.dogs) | set(cat.id for cat in self.cats) |
def __contains__(self, id):
return id in self.animal_ids
def __iter__(self, id):
return self.animal_ids.__iter__()
我现在正在测试这个对象,只会使用它提供的ID列表。有没有办法将对象模拟为一组特定的整数,将魔术方法传递给封装集?因此,如果我写if a in Foo():
,我希望模拟Foo调用a in Foo().animal_ids
,依此类推其他魔术方法。