class Something:
def __init__(self,x,y):
self.x = x
self.y = y
self.z = set()
def __hash__(self):
return hash((self.x, self.y, self.z))
def __eq__(self,other):
if not isinstance(other, Something):
return NotImplemented
return self.x == other.x and self.y == other.y
Выше приведено определение класса. Внутри main:
blah = []
for i in range(5):
blah.append(Something(i,i+1))
blah[0].z.add(blah[1])
Для этого я получаю ошибку TypeError: unhashable type: 'set'
. Одно решение, которое я нашел здесь, было сделать za frozenset()
, но это дает AttributeError: 'frozenset' object has no attribute 'add'
.
Какие-нибудь предложения?