有没有一种类似python中字符串的__repr__搜索方式

问题描述 投票:0回答:1

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

感谢您的见解。

python string repr double-underscore
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.