有没有一种方法可以在__repr__中进行搜索,类似于Python中的字符串

时间:2020-01-20 18:30:32

标签: python string repr double-underscore

我目前正在研究一个项目,我希望使用__ 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__并使其成为可以搜索的字符串?

预先感谢您的见解。

1 个答案:

答案 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