オブジェクトがヒープ内にあるかどうかを確認しようとしています。しかし、私はこのエラーを取得しておいてください。オブジェクトがヒープ内部にあるかどうかを調べる
AttributeError: 'tuple' object has no attribute 'X'
私はHeap
とこのようになりCell
クラスがあります:私はHeap
クラスを使用
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)
:
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
セルクラスをこのように: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'オブジェクトです。より明確にするためのコードを追加しました。 –
'List'で' priority'と 'Object Cell'を押していますか?ちょうどリストの 'Cell'をプッシュし、' self.myHeap'は何ですか? 'self'を削除して、あなたが何を持っているのか教えてください。 –
あなたは自己を定義しました。コードを編集していませんでした。 –