我对比较运算符的适当重载有一点问题。我正在尝试检查同一类的2个对象的完整身份。 我的逻辑是这样……
def __init__(self, name, num):
self._name = name
self._scores = []
for _ in range(num):
self._scores.append(0)
def __eq__(self, other):
if self.name == other.name and self.num== other.num:
for j in range(1, self.num): # range from index 1
if self.getScore(j) != other.getScore(j):
return False
return True
else:
return False
我收到的是...:
AttributeError: 'MyClass' object has no attribute 'name'
我正在尝试将黑白更改为私有/受保护/公共,但仍然无法使用操作员重载方法进行操作。
答案 0 :(得分:1)
您的代码使用self._name
,而您的比较使用的是self.name
,这就是为什么它找不到self.name
的原因,因为它应该是_name