我不确定这是否可能,因为在网上查找和回答时遇到问题,可能是因为我不知道必须解决这个问题。所以下面的代码是我正在尝试做的一个基本示例。
class Names():
def __init__(self, name):
self.name = name
def __repr__(self):
return self.name
>>> i = []
>>> i.append(Names("bob"))
>>> i.append(Names("jill"))
>>> i
[bob, jill]
>>> "bob" in i
False
我有一个 Name 类的列表,如果名称已经存在,我想返回 True。如果知道如何让这个工作?
请您参考如下方法:
有几种方法可以做到这一点。
最简单的方法是使用 any 进行迭代:
any(item.name == 'bob' for item in i)
更复杂的版本是在你的类上定义一个__eq__方法:
def __eq__(self, val):
return self.name == val
现在你原来的 "bob"in i 代码可以工作了。
(对于实际代码,如果您位于两个 Names 实例之间,您可能希望 checkin 该方法,而不是使用字符串。)
