Я занимаюсь некоторыми практическими упражнениями по программированию на Python и пытаюсь реализовать очередь (используя списки). К сожалению, я получаю поведение для своей функции isempty(), которую я не понимаю. При запуске кода ниже последние две строки дают разные ответы: A дает False, а B дает True. Почему A также не дает False?Реализация очереди в 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' - это термины, обычно связанные со стеками (которые представляют собой структуры данных LIFO). Подумайте, вместо этого используйте термины 'enqueue' и' dequeue'. – Tagc