我想比较包含在中使用隐式的某些类的列表。代码如下:
class Word:
def __init__(self, p_name):
self.name = p_name
def __eq__(self, other):
return self.name == other.name
def __str__(self):
return "_name_: " + self.name
t1 = []
t1.append(Word("John"))
t2 = []
t2.append(Word("John"))
if t1 in t2:
print("the same")
我得到一个错误,“列表没有属性'name'”。我知道我可以编写一些循环,但如果在这种情况下可能的话,我想在中使用隐式
这:
应为以下各项之一:
您不应该检查一个列表是否在另一个列表中。您可以检查某个特定项目是否在列表中,也可以将
t1
中的所有项目与t2
中的项目进行比较在
__eq__
中添加一个检查other
是否为Word
也是一个好主意。您的代码崩溃是因为other
是一个列表而不是Word
,因此other.name
查找失败相关问题 更多 >
编程相关推荐