我不确定这是否可能因为在线查找和回答有困难,可能因为我不知道必须解决这个问题.所以下面的代码是我想要做的基本例子.
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
Run Code Online (Sandbox Code Playgroud)
我有一个Name类的列表,如果名称已存在,则返回True.如果知道如何让这个工作?
有几种方法可以做到这一点.
最简单的方法是迭代any:
any(item.name == 'bob' for item in i)
Run Code Online (Sandbox Code Playgroud)
更复杂的版本是__eq__在您的类上定义一个方法:
def __eq__(self, val):
return self.name == val
Run Code Online (Sandbox Code Playgroud)
现在您的原始"bob" in i代码将起作用.
(对于实际代码,如果你在名字的两个实例之间而不是字符串,你可能想要检查该方法.)
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |