私はいくつかの基本的なPythonプログラミングの練習をしており、リストを使ってキューを実装しようとしました。残念ながら、私が理解していないisempty()関数の動作を取得しています。下のコードを実行すると、最後の2行で異なる答えが返されます。AはFalseを返し、BはTrueを返します。なぜAもFalseを返さないのですか?Pythonでキューを実装する - 異なる答えを返す2つのisempty()メソッド
class Queue:
def __init__(self):
self.items = []
def push(self,item):
self.items.insert(0,item)
def pop(self):
return self.items.pop()
def size(self):
return len(self.items)
def isempty(self):
return self.size == 0
q = Queue()
q.push("a")
q.push("b")
print(q.pop())
print(q.isempty())
print(q.pop())
print(q.isempty()) # shouldn't this (A)...
print(q.size()==0) # ...and this (B) yield the same answer?
'self.size'はメソッドです。 'self.size()'はsizeを返しますが、 'self.size'はメソッド自体であり、数値ではありません。 –
あなたのクラスはキューのように動作しますが、 'push'と' pop'は通常スタック(LIFOデータ構造体)に関連する用語です。代わりに、 'enqueue'と' dequeue'という用語の使用を検討してください。 – Tagc