Я пытаюсь проверить, находится ли объект внутри кучи. Тем не менее, я получаю эту ошибку:Проверка объекта внутри кучи
AttributeError: 'tuple' object has no attribute 'X'
У меня есть Heap
и Cell
класс, который выглядит примерно так:
import heapq
class Heap(object):
def __init__(self):
self.heap = []
def push(self, priority, cell):
heapq.heappush(self.heap, (priority, cell))
def pop(self):
cell = heapq.heappop(self.heap)[1]
return cell
def contains(self, cell):
if(cell in self.heap):
return True
return False
def isEmpty(self):
return len(self.heap) == 0
Cell класс:
class Cell(object):
def __init__(self, x, y):
self.X = x
self.Y = y
def __eq__(self, other):
return int(self.X) == int(other.X) and int(self.Y) == int(other.Y)
Я использую Heap
класс вот так: я получаю ошибку, когда использую метод contains
.
from Heap import Heap
from Cell import Cell
class Test(object):
def __init__(self):
self.myHeap = Heap()
cell = Cell(2, 3)
self.myHeap.push(1, cell)
if self.myHeap.contains(cell) == False:
print("not in heap")
test = Test()
Что я делаю неправильно? Любая помощь будет оценена по достоинству.
'self.myHeap' - это объект' Heap' из класса 'Heap', который я сделал выше. Добавлен дополнительный код, чтобы сделать его более понятным. –
вы нажимаете 'priority' и' Object Cell' в 'List' ?? Просто нажмите «Ячейка» в списке и что такое 'self.myHeap'? удалите 'self', тогда попробуйте и скажите мне, что у вас есть –
ok вы определили себя, не видели, как вы отредактировали код –