Python出列oop

时间:2018-03-29 17:14:24

标签: python python-3.x python-2.7 oop

尝试使用一些OOP Conceps实现python dequeue程序。该程序在类Queue中应该具有以下方法。 一世。 Queue类的构造函数 II。队列的入队方法 III。队列的出队方法 IV。 Queue类的is_empty方法 v。队列的 str 方法 最后使用Queue类中的magic方法正确实现了语句编号+ = 15的方法。以下是我能够实现的.AM无法实现魔术方法。感谢您的帮助

 class Queue:
 def __init__(self,Numbers):
    self.items=[]

def is_empty(self):
    return self.items == []

def enqueue(self, item):
    self.items.insert(0,item)

def dequeue(self):
    return self.items.pop()
def __str__(self):
    return str(self.items)
 # -----------------------------------------------------

 def main():
  numbers = Queue("Numbers")

print("Enqueue 1, 2, 3, 4, 5")
print("---------------------")
for number in range(1, 6):
    numbers.enqueue(number)
    print(numbers)

print("\nDequeue one item")
print("----------------")
numbers.dequeue()
print(numbers)

print("\nDeque all items")
print("---------------")
while not numbers.is_empty():
    print("Item dequeued:", numbers.dequeue())
    print(numbers)

# Enqueue 10, 11, 12, 13, 14
for number in range(10, 15):
    numbers.enqueue(number)

# Enqueue 15
numbers += 15

print("\n10, 11, 12, 13, 14, 15 enqueued")
print("-------------------------------")
print(numbers)

 # -----------------------------------------------------
 main()

1 个答案:

答案 0 :(得分:1)

您的代码中有2个错误。

首先,方法名称区分大小写:

while not numbers.is_Empty():

其次,您需要使用enqueue方法而不是+=

# Enqueue 15
numbers.enqueue(15)