我目前正在研究一个项目,我希望使用__ 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__并使其成为可以搜索的字符串?
预先感谢您的见解。
答案 0 :(得分:0)
定义__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