Skip to main content
 首页 » 编程设计

python之队列实现显示函数错误

2025年05月04日19fff_TT

class Queue: 
    def __init__(self):   '''initialization of function''' 
        self.items = [] 
    def is_empty(self):   '''Checking if queue is empty or not''' 
        return self.items == [] 
    def enqueue(self, data): '''Adding value ''' 
        self.items.append(data) 
    def dequeue(self):     ''' Removing value''' 
        return self.items.pop(0) 
    def dis(self):  '''Printing the stored item in queue''' 
        print(items) 

在 Queue 初始化之后:

 q = Queue() 
 while True: 
     print('enqueue <value>') 
     print('dequeue') 
     print('dis') 
     print('quit') 
     do = input('What would you like to do? ').split() 
     operation = do[0].strip().lower() 
     if operation == 'enqueue': 
         q.enqueue(int(do[1])) 
     elif operation == 'dequeue': 
         if q.is_empty(): 
             print('Queue is empty.') 
         else: 
             print('Dequeued value: ', q.dequeue()) 
     elif operation == 'dis': 
         q.dis() 
     elif operation == 'quit': 
         break 
     else: 
         print("Enter the correct operation") 

我无法显示在 Queue 中排队的项目。我如何使用 dis() 方法来显示其中的项目?

请您参考如下方法:

认为你应该打印 self.items(而不是 items)

def dis(self):  '''Printing the stored item in queue''' 
    print(self.items) 

这将使用标准格式输出列表,不是很漂亮,因此您可能想要为 pretty-print 添加一些额外的逻辑。

如果您想限制队列大小,您可以通过简单地忽略超过特定限制的项目来实现。为此,您需要实现限制以及检查限制的逻辑。例如:

class Queue: 
    def __init__(self, size=8):   '''initialization of function''' 
        self.items = [] 
        self.size = size 
    def is_empty(self):   '''Checking if queue is empty or not''' 
        return self.items == [] 
    def enqueue(self, data): '''Adding value ''' 
        if len(self.items) < self.size: 
            self.items.append(data) 
        else: 
            pass # behavior when queue is already full 
    def dequeue(self):     ''' Removing value''' 
        return self.items.pop(0) 
    def dis(self):  '''Printing the stored item in queue''' 
        print(items)