我正在做一些基本的Python編程實踐練習,並試圖實現一個隊列(使用列表)。不幸的是,我得到了我不明白的isempty()函數的行爲。當運行下面的代碼時,最後兩行給出了不同的答案:A產生False,而B產生True。爲什麼A不會產生假?Python實現一個隊列 - 兩個的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()'返回大小,但'self.size'是方法本身,而不是數字。 –
當你的類沒有表現得像一個隊列,'push'和'pop'通常與堆棧(這是後進先出的數據結構)相關條款。考慮使用術語'enqueue'和'dequeue'來代替。 – Tagc