我目前正在从事一个项目,我希望使用__ repr __方法直接查看列表并查看是否存在值。
当前,我的方法如下:
def __ repr__(self):
return 'Item({!r},{!r})'.format(self._id_code, self._title)
假设我输入了Item(“ Jerry”,“ 123”),然后我的对象而不是给出内存地址,现在看起来像这样:
Item('Jerry','123')
但是,当我尝试检查输入是否匹配时,它返回为false。例如:
print('123' in Item('Jerry','123')) # This comes back as False
是否有办法接受__ repr__并使其成为可以搜索的字符串?
感谢您的见解。
定义__contains__
以实现值查找。
class Item:
...
def __contains__(self, v):
return self._id_code == v or self._title == v
>>> assert i._id_code == 'Jerry'
>>> assert i._title = '123'
>>> '123' in i
True
>>> 'Jerry' in i
True
>>> 'Bob' in i
False